Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›REST API

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API