Поиск в нескольких потоках данных и индексах
Для поиска в нескольких потоках данных и индексах добавьте их в качестве значений, разделенных запятыми, в путь запроса API поиска.
Следующий запрос ищет в индексах my-index-000001 и my-index-000002.
GET /my-index-000001,my-index-000002/_search
{
"query": {
"match": {
"user.id": "kimchy"
}
}
} Вы также можете искать в нескольких потоках данных и индексах, используя шаблон индекса.
Следующий запрос использует шаблон индекса my-index-*. Запрос ищет любые потоки данных или индексы в кластере, начинающиеся с my-index-.
GET /my-index-*/_search
{
"query": {
"match": {
"user.id": "kimchy"
}
}
} Для поиска во всех потоках данных и индексах кластера, опустите целевой объект из пути запроса. В качестве альтернативы, вы можете использовать _all или *.
Следующие запросы эквивалентны и ищут во всех потоках данных и индексах кластера.
GET /_search
{
"query": {
"match": {
"user.id": "kimchy"
}
}
}
GET /_all/_search
{
"query": {
"match": {
"user.id": "kimchy"
}
}
}
GET /*/_search
{
"query": {
"match": {
"user.id": "kimchy"
}
}
} Усиление индексов
При поиске в нескольких индексах вы можете использовать параметр indices_boost для усиления результатов из одного или нескольких указанных индексов. Это полезно, когда совпадения, полученные из некоторых индексов, имеют большее значение, чем совпадения из других.
Вы не можете использовать indices_boost с потоками данных.
GET /_search
{
"indices_boost": [
{ "my-index-000001": 1.4 },
{ "my-index-000002": 1.3 }
]
} Также можно использовать псевдонимы и шаблоны индексов:
GET /_search
{
"indices_boost": [
{ "my-alias": 1.4 },
{ "my-index*": 1.3 }
]
} Если найдено несколько совпадений, будет использовано первое совпадение. Например, если индекс включен в alias1 и соответствует шаблону my-index*, применяется значение усиления 1.4.
© 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/7.17/search-multiple-indices.html