Elasticsearch Dynami c Анализатор и синонимы - PullRequest
1 голос
/ 05 мая 2020

Привет, у меня есть вариант использования, когда я хочу, чтобы мое приложение динамически выбирало xyz_tokizer, xyz_filter, xyz_synonyms и c

что-то похожее на это '' 'GET test / _search

{
  "query":{
    "match": {
      "content": {
          "query": "search_text",
          "analyzer": {
            "filter": "xyz_filter",
            "tokenizer": "xyz_tokenizer"
          }
        }
    }

  }
}

'' 'Однако это вызывает ошибку. В соответствии с документами elasticsearch я обнаружил, что мы можем указать только те анализаторы, которые определены в настройках индекса. Точно так же, как указать фильтры и токенизатор динамически

1 Ответ

1 голос
/ 05 мая 2020

Вы не можете, эти анализаторы должны быть зарегистрированы в вашем индексе, вы можете использовать анализатор времени поиска , динамически в соответствии с вашими требованиями.

Но индекс -время, вы не можете добавлять их динамически, он должен присутствовать в настройках вашего индекса. Вы также можете изменить настройку индекса, чтобы добавить новый анализатор и добавить новые поля с недавно добавленным анализатором (инкрементальные изменения), но изменение существующего анализатора поля является критическим изменением, и вам необходимо переиндексировать все данные.

...