Elasticsearch - API การค้นหา
API นี้ใช้เพื่อค้นหาเนื้อหาใน Elasticsearch ผู้ใช้สามารถค้นหาโดยการส่งคำขอรับโดยมีสตริงข้อความค้นหาเป็นพารามิเตอร์หรือสามารถโพสต์ข้อความค้นหาในเนื้อหาข้อความของคำขอโพสต์ APIS การค้นหาส่วนใหญ่เป็นแบบหลายดัชนีหลายประเภท
หลายดัชนี
Elasticsearch ช่วยให้เราค้นหาเอกสารที่มีอยู่ในดัชนีทั้งหมดหรือในดัชนีเฉพาะบางดัชนี ตัวอย่างเช่นหากเราต้องการค้นหาเอกสารทั้งหมดด้วยชื่อที่มีศูนย์กลางเราสามารถทำได้ดังที่แสดงไว้ที่นี่ -
GET /_all/_search?q=city:paprola
ในการรันโค้ดด้านบนเราจะได้รับคำตอบดังต่อไปนี้ -
{
"took" : 33,
"timed_out" : false,
"_shards" : {
"total" : 7,
"successful" : 7,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.9808292,
"hits" : [
{
"_index" : "schools",
"_type" : "school",
"_id" : "5",
"_score" : 0.9808292,
"_source" : {
"name" : "Central School",
"description" : "CBSE Affiliation",
"street" : "Nagan",
"city" : "paprola",
"state" : "HP",
"zip" : "176115",
"location" : [
31.8955385,
76.8380405
],
"fees" : 2200,
"tags" : [
"Senior Secondary",
"beautiful campus"
],
"rating" : "3.3"
}
}
]
}
}
ค้นหา URI
สามารถส่งผ่านพารามิเตอร์จำนวนมากในการดำเนินการค้นหาโดยใช้ Uniform Resource Identifier -
ส. เลขที่ | พารามิเตอร์และคำอธิบาย |
---|---|
1 | Q พารามิเตอร์นี้ใช้เพื่อระบุสตริงการสืบค้น |
2 | lenient พารามิเตอร์นี้ใช้เพื่อระบุสตริงการสืบค้นข้อผิดพลาดจากการจัดรูปแบบสามารถละเว้นได้เพียงตั้งค่าพารามิเตอร์นี้เป็นจริง เป็นเท็จโดยค่าเริ่มต้น |
3 | fields พารามิเตอร์นี้ใช้เพื่อระบุสตริงการสืบค้น |
4 | sort เราสามารถรับผลลัพธ์ที่เรียงลำดับได้โดยใช้พารามิเตอร์นี้ค่าที่เป็นไปได้สำหรับพารามิเตอร์นี้คือ fieldName, fieldName: asc / fieldname: desc |
5 | timeout เราสามารถ จำกัด เวลาในการค้นหาได้โดยใช้พารามิเตอร์นี้และการตอบกลับจะมีเฉพาะ Hit ในเวลาที่ระบุเท่านั้น โดยค่าเริ่มต้นจะไม่มีการหมดเวลา |
6 | terminate_after เราสามารถ จำกัด การตอบกลับตามจำนวนเอกสารที่ระบุสำหรับแต่ละชาร์ดเมื่อถึงที่แบบสอบถามจะยุติก่อนกำหนด โดยค่าเริ่มต้นจะไม่มี terminate_after |
7 | from เริ่มต้นจากดัชนีของการเข้าชมที่จะกลับมา ค่าเริ่มต้นคือ 0 |
8 | size หมายถึงจำนวนการเข้าชมที่จะส่งคืน ค่าเริ่มต้นคือ 10 |
ขอการค้นหาร่างกาย
นอกจากนี้เรายังสามารถระบุการสืบค้นโดยใช้แบบสอบถาม DSL ในเนื้อหาคำขอและมีตัวอย่างมากมายที่ให้ไว้แล้วในบทก่อนหน้า ตัวอย่างหนึ่งดังกล่าวได้รับที่นี่ -
POST /schools/_search
{
"query":{
"query_string":{
"query":"up"
}
}
}
ในการรันโค้ดด้านบนเราจะได้รับคำตอบดังต่อไปนี้ -
{
"took" : 11,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.47000363,
"hits" : [
{
"_index" : "schools",
"_type" : "school",
"_id" : "4",
"_score" : 0.47000363,
"_source" : {
"name" : "City Best School",
"description" : "ICSE",
"street" : "West End",
"city" : "Meerut",
"state" : "UP",
"zip" : "250002",
"location" : [
28.9926174,
77.692485
],
"fees" : 3500,
"tags" : [
"fully computerized"
],
"rating" : "4.5"
}
}
]
}
}