我们有大约200万个文档的弹性索引,我需要一种方法来基于单个唯一字段更新它们的列表。我尝试过的是使用Nest中的buildby updatebyquery函数,但是找到的文档要求我手动在代码中编写更新脚本,如下所示:
env = Env('test01', '1')
我的问题是我的Orderline类非常大,并且此硬编码脚本非常容易出错并且难以维护。
另一个问题是此更新需要很长时间才能更新200万行。
答案 0 :(得分:1)
我的问题是我的Orderline类非常大,并且此硬编码脚本非常容易出错并且难以维护。
Update by query API仅支持使用脚本进行更新,因此您可以实现一个小的组件,该组件可以根据给定的POCO实例生成脚本,以减少脚本中发生错误的可能性。
另一个问题是此更新需要很长时间才能更新200万行。
在您的情况下,是否可以将文档建立索引到新索引中,并using aliases指向新版本的索引?更新/删除现有索引中的数百万个文档是相对昂贵的操作。