2016-09-27 67 views
1

我試圖將asciifolding過濾器添加到現有的elasticsearch索引,但查詢結果與預期的一樣。但是,當我將相同的程序應用於清潔指數時,它按預期工作。elasticsearch - 將asciifolding過濾器添加到現有集合

這是否意味着如果我添加一個過濾器,我必須以某種方式強制更新所有文檔重新編制它們或什麼?

+0

建立自己的reindex機制你的意思是說,他們不是你應用過濾器時的預期到現有的索引? – fylie

+0

是的,結果實際上很奇怪。 – speedingdeer

回答

1

無論何時添加過濾器,您都必須重新索引現有文檔。 This使用Logstash重新索引Elasticsearch文檔的指南將幫助您。實質上,您將輸入現有的文檔到Logstash中,添加您的過濾器,並將它們輸出到新的索引中。

1

如果添加了過濾器/分析儀則現有文件不會受到影響(文件都在elasticsearch/Lucene的immutable)。這意味着只有新文檔纔會與新配置一起保存。

您可以應用您的新配置,然後重新索引任何現有數據。如果您使用的是2.3及更高版本,那麼您可以使用reindex api。如果不是,那麼你將不得不使用類似@pancake的建議,或者你可以使用scrollbulk apl