【问题标题】:Should I reindex documents in Elasticsearch when I change the Stemmer?当我更改 Stemmer 时,是否应该在 Elasticsearch 中重新索引文档?
【发布时间】:2014-10-08 16:09:08
【问题描述】:
我正在使用 Elasticsearch 来索引我的文档(尽管我相信我的问题也适用于任何其他搜索引擎,例如 Lucene 或 Solr)。
我正在使用 Porter 词干分析器和索引时的停用词列表。我知道我应该在搜索时应用相同的词干分析器和停用词删除以获得正确的结果。
我的问题是,如果我决定更改词干分析器或在停用词列表中添加/删除几个词怎么办? 我应该重新索引所有文档(或所有文本字段)以应用更改吗?或者有没有其他方法来处理这种情况?
【问题讨论】:
标签:
search
indexing
lucene
elasticsearch
stemming
【解决方案1】:
是的,如果您需要大幅更改分析器,则必须重新索引您的文档。如果不这样做,更改只会影响查询分析。在更改为 StopFilter 时,您可能能够摆脱这种情况,但在更改词干分析器时则不行。重新索引是将新的分析规则应用于索引数据的唯一方法,无论您是通过转储整个事物并从头开始重新构建它,还是通过更新文档来重新索引。
就其他方法而言,如果您不想重新索引,则会将分析更改限制在查询时间,这会极大地限制您可以做的事情(您可以使 SynonymFilter 工作,但同样,更改词干分析器肯定出局了)。