SQL有" INSERT INTO ... SELECT"用查询中的数据填充表的语句。 Elasticsearch是否存在类似的内容?
这样可以防止我使用查询从现有索引中大量删除数据 - 这是官方Elasticsearch 2.1指南警告的内容:
不要使用逐个删除来清除索引中的所有或大多数文档。而是创建一个新索引,并可能重新索引您想要保留的文档。
(来源:https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugins-delete-by-query.html)。
答案 0 :(得分:4)
您可以使用来自taskrabbit的名为elasticdump
的优秀实用程序。
有many options来自定义导入过程。在你的情况下,我会使用searchBody
选项并使用类似的东西:
elasticdump \
--input=http://HOST:9200/source_index \
--output=http://HOST:9200/target_index \
--bulk=true \
--searchBody='{"query": { "match_all": {} } }'
您可以自定义查询,只有source_index
中匹配的文档会被复制到target_index