elasticsearch - 为现有集合添加asciifolding过滤器

时间:2016-09-27 22:12:19

标签: elasticsearch

我正在尝试向现有的elasticsearch索引添加asciifolding过滤器,但查询结果与预期一致。但是,当我将相同的过程应用于干净索引时,它按预期工作。

这是否意味着如果我添加过滤器,我必须以某种方式强制更新所有文档以重新索引它们或什么?

2 个答案:

答案 0 :(得分:1)

无论何时添加过滤器,都必须重新索引现有文档。使用Logstash重新索引Elasticsearch文档的This指南将对您有所帮助。基本上,您将现有文档输入Logstash,添加过滤器,并将它们输出到新索引中。

答案 1 :(得分:1)

如果添加过滤器/分析器,则现有文档不会受到影响(文档在elasticsearch / lucene中为immutable)。这意味着只有新文档将与新配置一起保存。

您可以应用新配置,然后重新索引任何现有数据。如果您使用的是2.3及更高版本,则可以使用reindex api。如果没有,那么您必须使用@pancake建议的内容,或者您​​可以使用scrollbulk apis构建自己的重新索引机制