Elasticsearch - APIs de pesquisa

Esta API é usada para pesquisar conteúdo no Elasticsearch. Um usuário pode pesquisar enviando uma solicitação get com string de consulta como parâmetro ou pode postar uma consulta no corpo da mensagem da solicitação de postagem. Principalmente todos os APIS de pesquisa são multi-índice, multi-tipo.

Multi-índice

Elasticsearch permite-nos pesquisar os documentos presentes em todos os índices ou em alguns índices específicos. Por exemplo, se precisarmos pesquisar todos os documentos com um nome que contenha central, podemos fazer como mostrado aqui -

GET /_all/_search?q=city:paprola

Ao executar o código acima, obtemos a seguinte resposta -

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

Pesquisa URI

Muitos parâmetros podem ser passados ​​em uma operação de pesquisa usando o Uniform Resource Identifier -

S.Não Parâmetro e Descrição
1

Q

Este parâmetro é usado para especificar a string de consulta.

2

lenient

Este parâmetro é usado para especificar a string de consulta. Erros baseados em formato podem ser ignorados apenas definindo este parâmetro como verdadeiro. É falso por padrão.

3

fields

Este parâmetro é usado para especificar a string de consulta.

4

sort

Podemos obter o resultado classificado usando este parâmetro, os valores possíveis para este parâmetro são fieldName, fieldName: asc / fieldname: desc

5

timeout

Podemos restringir o tempo de pesquisa usando este parâmetro e a resposta contém apenas os resultados naquele tempo especificado. Por padrão, não há tempo limite.

6

terminate_after

Podemos restringir a resposta a um número específico de documentos para cada fragmento, ao atingir o qual a consulta será encerrada mais cedo. Por padrão, não há terminate_after.

7

from

O início do índice dos hits a serem retornados. O padrão é 0.

8

size

Ele denota o número de acertos a serem retornados. O padrão é 10.

Solicitar busca corporal

Também podemos especificar a consulta usando DSL de consulta no corpo da solicitação e há muitos exemplos já fornecidos nos capítulos anteriores. Um exemplo é dado aqui -

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

Ao executar o código acima, obtemos a seguinte resposta -

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