我是ElasticSearch的新手,所以这可能是非常简单的事情,但我还没有找到更好的东西来获取所有内容,使用脚本处理并逐个更新寄存器。
我想做一些简单的SQL更新:
UPDATE RECORD SET SOMEFIELD = SOMEXPRESSION
我的意图是用一些更有意义的数据替换实际的虚假数据(因此表达式基本上是从有效值池中随机选择的)。
答案 0 :(得分:14)
技术挑战是lucene(elasticsearch在引擎盖下使用的文本搜索引擎库)段是只读的。您永远不能修改现有文档。您需要做的是删除旧版本的文档(顺便说一句,只有标记为已删除,直到发生段合并)并索引新版本。这就是现有的update api所做的。因此,按查询更新可能需要很长时间并导致问题,这就是它尚未发布的原因。对于这种情况,允许中断运行查询的机制也很好。
但是update by query plugin确实暴露了这个功能。在使用它之前,请注意潜在的风险。