API перезагрузки анализаторов поиска
Перезагружает анализаторы поиска индекса и их ресурсы. Для потоков данных API перезагружает анализаторы поиска и ресурсы для базовых индексов потока.
POST /my-index-000001/_reload_search_analyzers POST /my-index-000001/_cache/clear?request=true
После перезагрузки анализаторов поиска необходимо очистить кэш запросов, чтобы убедиться, что он не содержит ответы, полученные из предыдущих версий анализатора.
Запрос
POST /<target>/_reload_search_analyzers
GET /<target>/_reload_search_analyzers
Предварительные требования
- Если функции безопасности Elasticsearch включены, у вас должны быть права
manageдоступа к индексу для целевого потока данных, индекса или псевдонима.
Описание
Вы можете использовать API перезагрузки анализаторов поиска для применения изменений в файлах синонимов, используемых в synonym_graph или synonym фильтре токенов анализатора поиска. Для этого фильтр токенов должен иметь флаг updateable со значением true и использоваться только в анализаторах поиска.
Этот API не выполняет перезагрузку для каждого фрагмента индекса. Вместо этого он выполняет перезагрузку для каждого узла, содержащего фрагменты индекса. В результате общее количество фрагментов, возвращаемых API, может отличаться от количества фрагментов индекса.
Поскольку перезагрузка затрагивает каждый узел с фрагментом индекса, важно обновить файл синонимов на каждом узле данных в кластере, включая узлы, не содержащие реплика фрагментов, перед использованием этого API. Это гарантирует обновление файла синонимов во всех узлах кластера на случай перемещения фрагментов в будущем.
Параметры пути
-
<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.
Примеры
Используйте API создания индекса, чтобы создать индекс с анализатором поиска, содержащим обновляемый фильтр синонимов.
Использование следующего анализатора в качестве анализатора индекса приводит к ошибке.
PUT /my-index-000001
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"my_synonyms": {
"tokenizer": "whitespace",
"filter": [ "synonym" ]
}
},
"filter": {
"synonym": {
"type": "synonym_graph",
"synonyms_path": "analysis/synonym.txt",
"updateable": true
}
}
}
}
},
"mappings": {
"properties": {
"text": {
"type": "text",
"analyzer": "standard",
"search_analyzer": "my_synonyms"
}
}
}
} | Включает файл синонимов. | |
| Отмечает фильтр токенов как обновляемый. | |
| Отмечает анализатор как анализатор поиска. |
После обновления файла синонимов используйте API перезагрузки анализатора для перезагрузки анализатора поиска и применения изменений в файле.
POST /my-index-000001/_reload_search_analyzers
API возвращает следующий ответ.
{
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
},
"reload_details": [
{
"index": "my-index-000001",
"reloaded_analyzers": [
"my_synonyms"
],
"reloaded_node_ids": [
"mfdqTXn_T7SGr2Ho2KT8uw"
]
}
]
}
© 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/indices-reload-analyzers.html