API фрагментов поиска
Возвращает индексы и фрагменты, на которых будет выполняться запрос поиска.
GET /my-index-000001/_search_shards
Запрос
GET /<target>/_search_shards
Предварительные условия
- Если включены функции безопасности Elasticsearch, у вас должна быть роль
view_index_metadataилиmanageправа доступа к индексу для целевого потока данных, индекса или псевдонима.
Описание
API фрагментов поиска возвращает индексы и фрагменты, на которых будет выполняться запрос поиска. Это может быть полезной информацией для выявления проблем или планирования оптимизаций с использованием маршрутизации и предпочтений фрагментов. При использовании отфильтрованных псевдонимов фильтр возвращается в рамках раздела indices.
Параметры пути
-
<target> - (Необязательно, строка) Список потоков данных, индексов и псевдонимов для поиска, разделенных запятыми. Поддерживаются подстановочные знаки (
*). Чтобы выполнить поиск по всем потокам данных и индексам, опустите этот параметр или используйте*или_all.
Параметры запроса
-
allow_no_indices -
(Необязательно, логическое значение) Если
false, запрос возвращает ошибку, если какой-либо подстановочный символ, псевдоним индекса или значение_allнаправлены только на отсутствующие или закрытые индексы. Это поведение применимо даже если запрос направлен на другие открытые индексы. Например, запрос, направленный наfoo*,bar*, возвращает ошибку, если индекс начинается сfoo, но ни один индекс не начинается сbar.По умолчанию
true. -
expand_wildcards -
(Необязательно, строка) Тип индекса, с которым могут совпадать подстановочные знаки. Если запрос может нацеливаться на потоки данных, этот аргумент определяет, будут ли подстановочные знаки соответствовать скрытым потокам данных. Поддерживаются значения, разделенные запятыми, такие как
open,hidden. Допустимые значения:-
all - Соответствие любому потоку данных или индексу, включая скрытые.
-
open - Соответствие открытым, не скрытым индексам. Также соответствует любому не скрытому потоку данных.
-
closed - Соответствие закрытым, не скрытым индексам. Также соответствует любому не скрытому потоку данных. Потоки данных не могут быть закрыты.
-
hidden - Соответствие скрытым потокам данных и скрытым индексам. Должен быть объединен с
open,closedили обоими. -
none - Подстановочные знаки не принимаются.
По умолчанию
open. -
-
ignore_unavailable - (Необязательно, логическое значение) Если
false, запрос возвращает ошибку, если он направлен на отсутствующий или закрытый индекс. По умолчаниюfalse. -
local - (Необязательно, логическое значение) Если
true, запрос извлекает информацию только с локального узла. По умолчаниюfalse, что означает, что информация извлекается с узла-мастера. -
preference - (Необязательно, строка) Указывает узел или фрагмент, на котором должна быть выполнена операция. По умолчанию случайный.
-
routing - (Необязательно, строка) Пользовательское значение, используемое для маршрутизации операций на определенный фрагмент.
Примеры
GET /my-index-000001/_search_shards
API возвращает следующий результат:
{
"nodes": ...,
"indices" : {
"my-index-000001": { }
},
"shards": [
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"shard": 0,
"state": "STARTED",
"allocation_id": {"id":"0TvkCyF7TAmM1wHP4a42-A"},
"relocating_node": null
}
],
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"shard": 1,
"state": "STARTED",
"allocation_id": {"id":"fMju3hd1QHWmWrIgFnI4Ww"},
"relocating_node": null
}
],
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"shard": 2,
"state": "STARTED",
"allocation_id": {"id":"Nwl0wbMBTHCWjEEbGYGapg"},
"relocating_node": null
}
],
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"shard": 3,
"state": "STARTED",
"allocation_id": {"id":"bU_KLGJISbW0RejwnwDPKw"},
"relocating_node": null
}
],
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"shard": 4,
"state": "STARTED",
"allocation_id": {"id":"DMs7_giNSwmdqVukF7UydA"},
"relocating_node": null
}
]
]
} Указание того же запроса, но теперь со значением маршрутизации:
GET /my-index-000001/_search_shards?routing=foo,bar
API возвращает следующий результат:
{
"nodes": ...,
"indices" : {
"my-index-000001": { }
},
"shards": [
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"shard": 2,
"state": "STARTED",
"allocation_id": {"id":"fMju3hd1QHWmWrIgFnI4Ww"},
"relocating_node": null
}
],
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"shard": 3,
"state": "STARTED",
"allocation_id": {"id":"0TvkCyF7TAmM1wHP4a42-A"},
"relocating_node": null
}
]
]
} Из-за указанных значений маршрутизации поиск выполняется только на двух фрагментах.
© 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-shards.html