我需要通过弹性搜索中的脚本进行批量更新,而无需指定文档ID。在“书籍”文档类型中,我有作者姓名。如果我重命名作者名称,则需要使用脚本对所有具有更新的作者名称的“书籍”进行批量更新。
我需要获取所有具有作者姓名的书籍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;
您提到的是按查询更新功能。它尚不可用,但是由于有很多需求,我想它将有一天可用,因此您可以在github上的相关问题上找到战利品:https : //github.com/elasticsearch/elasticsearch/issues/1607。尚未实施的原因是它具有潜在的危险,因为它可能导致大量更新和可能长时间运行的查询,这些查询目前无法停止。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句