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