我是Elasticsearch的新手,并且一直在使用它来存储来自网络的抓取数据并将其传递给kibana进行分析。

但是,我仍然需要调整我的映射。从我收集到的信息来看,我无法即时更改现有字段的映射。到目前为止,每次我必须对映射进行调整时,都必须删除索引,创建新的映射,然后再次开始爬网(痛苦!)。

因此,我想做的就是轻松地分别备份现有爬网和映射中的数据,以便在增量调整映射时可以仅还原数据。

我已经研究过使用Elasticdump,但是虽然很明显可以创建映射和数据的json输出,但是我也可以使用elasticdump从创建和存档的json文件中重新导入数据和/或映射吗?

感谢您的任何想法/建议!

最佳答案

最后,我使用了Elasticdump,它确实易于使用且简单明了。

我还没有使用其他映射来重新创建我的Elasticsearch数据库,因此还没有按照我认为的那样测试完整的循环。但是我可以报告,elasticdump允许您以json格式(完整的按条目索引条目)导出整个数据集,并分别导出映射。您也可以单独导出分析仪,但我没有必要。

现在有了这两个文件-如果我需要创建一个新实例,但具有不同的映射和分析器设置,我相信我可以手动调整映射文件,将映射导入到新数据库中,然后导入数据。然后,当我使用kibana进行可视化时,我只需要选择新索引。

一些命令以便于引用:

npm install elasticdump -g

然后获取数据:
elasticdump \
    --input=http://production.es.com:9200/my_index \
    --output=/data/my_index_data.json \
    --type=data

然后进行映射:
elasticdump \
    --input=http://production.es.com:9200/my_index \
    --output=/data/my_index_mapping.json \
    --type=mapping

当我开始尝试在新环境中进行测试时,我将能够确认对重新导入的实际测试,但是我认为我现在会进行更新,以防其他人也在考虑选择方案。

(仅供引用,您还可以从一个ES数据库导出并直接输出到另一个ES数据库)...

08-28 03:04