Приложение поиска поиска
Данная функциональность находится в стадии бета-тестирования и может быть изменена. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без каких-либо гарантий. Функции бета-версии не подпадают под SLA поддержки официальных функций GA.
На основе указанных параметров запроса генерирует и выполняет запрос Elasticsearch, используя шаблон поиска, связанный с приложением поиска, или шаблон по умолчанию, если он не указан. Параметры шаблона, которые не указаны, будут назначены их значениям по умолчанию (если применимо).
Запрос
POST _application/search_application/<name>/_search
Предварительные условия
Требуются права чтения на алиас, лежащий в основе приложения поиска.
Параметры пути
-
typed_keys - (Необязательно, булево) Если
true, имена агрегаций и подсказок будут префиксрованы соответствующими типами в ответе. По умолчаниюfalse.
Тело запроса
-
params - (Необязательно, карта строк к объектам) Параметры запроса, используемые для генерации запроса Elasticsearch из шаблона поиска, связанного с приложением поиска. Если параметр, используемый в шаблоне поиска, не указан в
params, будет использоваться значение параметра по умолчанию.
Приложение поиска может быть настроено на проверку параметров шаблона поиска. См. параметр dictionary в API put search application для получения дополнительной информации.
Коды ответов
-
400 -
Передан неверный параметр в шаблон поиска. Примеры включают:
- Отсутствующий обязательный параметр
- Неверный тип данных параметра
- Неверное значение параметра
-
404 - Приложение поиска
<name>не существует.
Примеры
В следующем примере выполняется поиск по приложению поиска с именем my-app, использующему шаблон поиска из примера поиска текста:
resp = client.search_application.search(
name="my-app",
params={
"query_string": "my first query",
"text_fields": [
{
"name": "title",
"boost": 5
},
{
"name": "description",
"boost": 1
}
]
},
)
print(resp) const response = await client.searchApplication.search({
name: "my-app",
params: {
query_string: "my first query",
text_fields: [
{
name: "title",
boost: 5,
},
{
name: "description",
boost: 1,
},
],
},
});
console.log(response); POST _application/search_application/my-app/_search
{
"params": {
"query_string": "my first query",
"text_fields": [
{"name": "title", "boost": 5},
{"name": "description", "boost": 1}
]
}
} Сгенерированный запрос Elasticsearch будет выглядеть следующим образом:
{
"from": 0,
"size": 10,
"query": {
"multi_match": {
"query": "my first query",
"fields": [
"description^1.0",
"title^5.0"
]
}
},
"explain": false
} В этом случае параметры from, size и explain не указаны в запросе, поэтому используются значения по умолчанию, указанные в шаблоне поиска.
Ожидаемый ответ — результаты поиска из запроса Elasticsearch, который был сгенерирован и выполнен. Формат ответа такой же, как и у API поиска Elasticsearch:
{
"took": 5,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 0.8630463,
"hits": ...
}
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/search-application-search.html