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