我需要在弹性搜索中通过脚本进行批量更新,而不指定文档ID。在' Books'文件类型,我有作者姓名。如果我重命名作者姓名,我需要批量更新所有图书'通过使用脚本获得更新的作者姓名。
我是否需要获取所有具有作者姓名的书籍ID并更新所有书籍?
BulkResponse bulkResponse = client.prepareBulk().add(client.prepareUpdate().setIndex("test").setType("books").setScript(script)).execute().actionGet();
通过使用上面的代码我得到以下异常
org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: id is missing;
答案 0 :(得分:2)
您提到的是按查询功能更新。它还没有提供,但由于有很多需求,我猜它有一天可用,你可以在github上的相关问题上获得战利品:https://github.com/elasticsearch/elasticsearch/issues/1607。 它尚未实现的原因是它有潜在危险,因为它可能导致大量更新以及可能长时间运行的查询,此时无法停止。