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

Многие параметры могут быть переданы в операции поиска с использованием унифицированного идентификатора ресурса -

S.No Параметр и описание
1

Q

Этот параметр используется для указания строки запроса.

2

lenient

Этот параметр используется для указания строки запроса. Ошибки, связанные с форматом, можно игнорировать, просто установив для этого параметра значение true. По умолчанию - false.

3

fields

Этот параметр используется для указания строки запроса.

4

sort

Мы можем получить отсортированный результат, используя этот параметр, возможные значения для этого параметра: fieldName, fieldName: asc / fieldname: desc

5

timeout

Мы можем ограничить время поиска, используя этот параметр, и ответ будет содержать только совпадения за это указанное время. По умолчанию тайм-аут отсутствует.

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