ElasticSearch快照/恢复功能是否会导致在恢复期间再次分析数据?

时间:2014-07-24 17:27:30

标签: elasticsearch

我的ElasticSearch索引中有相当数量的数据。我更改了索引的default analyzer,因此基本上我需要重新索引我的数据,以便使用新的分析器再次对其进行分析。因此,如果有一个我可以使用的备份/恢复模块,而不是创建一个将删除ES索引中所有现有数据的测试脚本,并重新添加我认为的数据。作为其中的一部分,我找到了ES支持的快照/恢复模块 - ElasticSearch-SnapshotAndRestore

我的问题是 - 如果我使用上面的ES快照/恢复模块,它实际上会导致数据被重新分析吗?由于我更改了默认分析器,我需要重新分析数据。如果没有,是否有一个备用工具/模块,你会建议允许纯数据导出和导入,从而导致数据在导入过程中被重新分析?

devuser的

1 个答案:

答案 0 :(得分:1)

不,它不会重新分析数据。您需要重新编制数据索引。

幸运的是,使用Elasticsearch相当简单,因为它默认存储文档的来源:

  

重新编制数据索引

     

虽然您可以向索引添加新类型,或向类型添加新字段,   您无法添加新分析器或对现有字段进行更改。如果你   如果这样做,已编入索引的数据将是   不正确,您的搜索将无法按预期工作。

     

将这些更改应用于现有数据的最简单方法就是   重新索引:使用新设置创建新索引并复制所有索引   您的文档从旧索引到新索引。

     

_source字段的一个优点是你已经拥有了   Elasticsearch本身提供的整个文档。你没有   必须从数据库重建索引,这通常很多   慢。

     

要有效地重新索引旧索引中的所有文档,请使用   扫描&滚动以从旧索引中检索批量文档,以及   批量API将它们推入新索引。

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/reindex.html

在采用这种方法之前,我已经阅读了Scan和Scroll:

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/scan-scroll.html

TaskRabbit确实开源了一个导入/导出工具,但我没有使用它,所以不能推荐,但值得一看:

https://github.com/taskrabbit/elasticsearch-dump