11

具体来说,我想索引没有停用词列表的所有内容(例如谁)。弹性搜索是否足够灵活且易于更改?

4

4 回答 4

17

By default, the analyzer elasticsearch uses is a standard analyzer with the default Lucene English stopwords. I have configured elasticsearch to use the same analyzer but without stopwords by adding the following to the elasticsearch.yml file.

# 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_
于 2011-06-17T09:33:16.423 回答
4

是的,您可以使用 ElasticSearch 的内部配置 YAML 文件来执行此操作。

有关如何更改分析器设置的信息,请参阅配置文档。

于 2011-02-12T11:32:07.637 回答
4

您可以通过将这些行添加到您的 elasticsearch.yml 来全局覆盖默认分析器并关闭停用词过滤器:

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

这将创建一个带有标准标记器和两个过滤器的自定义分析器:标准和小写。这样,您的自定义分析器将与标准分析器相同,但不会使用停用词过滤器。因为它被命名为“默认”,所以 elasticsearch 将在没有明确设置分析器的任何地方使用它。

于 2012-10-22T13:25:53.060 回答
0

当然可以。使用 stopwords_path 代替停用词。更多信息http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-stop-analyzer.html

于 2014-05-29T06:09:58.197 回答