我是弹性搜索的新手,并且一直使用它来存储来自网络的数据并将其传递给kibana进行分析。
但是我一直需要调整我的映射。从我收集的内容来看,我无法动态改变现有字段的映射。到目前为止,每次我必须对我的映射进行调整时,我必须删除索引,创建一个新的映射,然后再次抓取我的爬行(痛苦!)。
所以我想做的是分别从现有的爬网和映射中轻松备份数据,因此我可以在逐步调整映射时恢复数据。
我已经看过使用elasticdump,但是虽然我可以创建映射和数据的json输出,但是我可以使用elasticdump来重新导入那些创建和存档的json文件中的数据和/或映射吗? / p>
感谢您的任何想法/建议!
答案 0 :(得分:4)
您可以使用snapshot来备份elasticsearch数据并恢复elasticsearch本身提供的api。例如:
PUT /_snapshot/my_backup/snapshot_1
{
"indices": "index_1,index_2",
"ignore_unavailable": true,
"include_global_state": false
}
Here是一篇博文,解释"如何备份弹性搜索数据"如果您希望查看备份和恢复操作而不是观看此video tutorial
答案 1 :(得分:1)
有几种方法可以在Elasticsearch中更改映射,无需停机,也无法完全重建索引。
另一种方式(the official one)是使用scroll
和bulk
api来重新索引从一个索引到新索引。问题是使用aliases
以保持相同的“索引”名称并仍然更改其映射。其中描述了here。关键概念是为每个索引创建一个别名,并使用别名来索引数据而不是真正的索引名称。一旦需要更改映射,就可以使用新映射创建新索引,并且将所有数据重新索引到新索引后,将别名更改为指向新索引。
关于保存索引,我不知道在没有映射的情况下在Elasticsearch中保存索引的官方方法。
无论如何,如果您希望将数据移动到另一个位置的另一个群集,然后重新编制索引。您可以在Amazon S3上找到有关快照/恢复Elasticsearch数据的this文章。
此link会向Elasticsearch提供有关如何与其他文件系统进行快照/还原的文档。
希望我能帮到你!