更新所有数据弹性搜索

时间:2016-08-19 11:19:14

标签: elasticsearch elasticsearch1.3.2

有没有办法更新elasticsearch中的所有数据。

在下面的示例中,更新了外部' 1'。

curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '
{
 "doc": { "name": "Jane Doe", "age": 20 }
}'

同样,我需要更新外部的所有数据。是否有任何方式或查询来更新所有数据。

1 个答案:

答案 0 :(得分:1)

更新索引中的所有文档意味着将删除所有文档,并将索引新文档。这意味着很多"marked-as-deleted"个文件。

运行查询时,ES会自动过滤掉那些“标记为已删除”的文档,这会对查询的响应时间产生影响。它取决于数据,用例和查询有多大影响。

此外,如果您更新所有文档,除非您运行_force_merge,否则会有一些段(特别是较大的段)仍然会有“标记为已删除”的文档,并且这些段很难自动生成由Lucene / Elasticsearch合并。

我的建议是,如果您的索引过程不是太复杂(例如从关系数据库获取数据并在索引到ES之前处理它),则完全删除索引并索引新数据。它可能比更新所有文件更有效。