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"
            }
         }
      ]
   }
}