Могу ли я настроить "Упругий поиск" для использования моего собственного списка "Остановить список слов"?

в частности, я хочу индексировать все (например, кто) без списка стоп-слов. Является ли эластичный поиск достаточно гибким и достаточно легким для изменения?

Ответ 1

По умолчанию используемый анализатор elasticsearch представляет собой стандартный анализатор со стандартными секундомерами Lucene English. Я сконфигурировал elasticsearch для использования того же анализатора, но без остановок, добавив следующее в файл elasticsearch.yml.

# Index Settings
index:
  analysis:
    analyzer:
      # set standard analyzer with no stop words as the default for both indexing and searching
      default:
        type: standard
        stopwords: _none_

Ответ 2

Да, вы можете сделать это с помощью файла конфигурации YAML внутреннего файла ElasticSearch.

См. config docs о том, как изменить настройки анализатора.

Ответ 3

Вы можете переопределить анализатор по умолчанию во всем мире и отключить фильтр паузы, добавив эти строки в ваш elasticsearch.yml:

index.analysis.analyzer.default:
  type: custom
  tokenizer: standard
  filter: standard, lowercase

Это создаст собственный анализатор со стандартным токенизатором и двумя фильтрами: стандартным и строчным. Таким образом, ваш пользовательский анализатор будет идентичен стандартным анализаторам, но он не будет использовать фильтр остановки. Поскольку он называется "default", elasticsearch будет использовать его везде, где анализатор явно не установлен.