Elasticsearch - API tìm kiếm

API này được sử dụng để tìm kiếm nội dung trong Elasticsearch. Người dùng có thể tìm kiếm bằng cách gửi yêu cầu nhận với chuỗi truy vấn làm tham số hoặc họ có thể đăng truy vấn trong nội dung thư của yêu cầu đăng. Chủ yếu tất cả các APIS tìm kiếm là đa chỉ mục, đa loại.

Đa chỉ mục

Elasticsearch cho phép chúng tôi tìm kiếm các tài liệu có trong tất cả các chỉ số hoặc trong một số chỉ số cụ thể. Ví dụ: nếu chúng ta cần tìm kiếm tất cả các tài liệu có tên chứa trung tâm, chúng ta có thể làm như được hiển thị ở đây -

GET /_all/_search?q=city:paprola

Khi chạy đoạn mã trên, chúng tôi nhận được phản hồi sau:

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

Tìm kiếm URI

Nhiều tham số có thể được chuyển trong thao tác tìm kiếm bằng Mã định danh tài nguyên đồng nhất -

S. không Mô tả về Thông Số
1

Q

Tham số này được sử dụng để chỉ định chuỗi truy vấn.

2

lenient

Tham số này được sử dụng để chỉ định chuỗi truy vấn. Các lỗi dựa trên định dạng có thể được bỏ qua bằng cách đặt tham số này thành true. Nó là sai theo mặc định.

3

fields

Tham số này được sử dụng để chỉ định chuỗi truy vấn.

4

sort

Chúng ta có thể nhận được kết quả được sắp xếp bằng cách sử dụng tham số này, các giá trị có thể có cho tham số này là fieldName, fieldName: asc / fieldname: desc

5

timeout

Chúng tôi có thể hạn chế thời gian tìm kiếm bằng cách sử dụng thông số này và phản hồi chỉ chứa các lần truy cập trong thời gian được chỉ định đó. Theo mặc định, không có thời gian chờ.

6

terminate_after

Chúng tôi có thể hạn chế phản hồi đối với một số tài liệu cụ thể cho mỗi phân đoạn, khi đạt đến đó truy vấn sẽ kết thúc sớm. Theo mặc định, không có cuối_sau.

7

from

Bắt đầu từ chỉ mục của các lần truy cập để trả về. Mặc định là 0.

số 8

size

Nó biểu thị số lần truy cập để trả lại. Mặc định là 10.

Yêu cầu tìm kiếm cơ thể

Chúng ta cũng có thể chỉ định truy vấn bằng cách sử dụng DSL truy vấn trong phần thân yêu cầu và có nhiều ví dụ đã được đưa ra trong các chương trước. Một ví dụ như vậy được đưa ra ở đây -

POST /schools/_search
{
   "query":{
      "query_string":{
         "query":"up"
      }
   }
}

Khi chạy đoạn mã trên, chúng tôi nhận được phản hồi sau:

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