从查询创建新的Elasticsearch索引?

时间:2016-01-25 13:14:07

标签: elasticsearch elasticsearch-plugin

SQL有" INSERT INTO ... SELECT"用查询中的数据填充表的语句。 Elasticsearch是否存在类似的内容?

这样可以防止我使用查询从现有索引中大量删除数据 - 这是官方Elasticsearch 2.1指南警告的内容:

  

不要使用逐个删除来清除索引中的所有或大多数文档。而是创建一个新索引,并可能重新索引您想要保留的文档。

(来源:https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugins-delete-by-query.html)。

1 个答案:

答案 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