嵌套updatebyquery我如何使用poco而不是编写脚本

时间:2018-10-19 09:14:41

标签: elasticsearch nest

我们有大约200万个文档的弹性索引,我需要一种方法来基于单个唯一字段更新它们的列表。我尝试过的是使用Nest中的buildby updatebyquery函数,但是找到的文档要求我手动在代码中编写更新脚本,如下所示:

env = Env('test01', '1')

我的问题是我的Orderline类非常大,并且此硬编码脚本非常容易出错并且难以维护。

另一个问题是此更新需要很长时间才能更新200万行。

1 个答案:

答案 0 :(得分:1)

  

我的问题是我的Orderline类非常大,并且此硬编码脚本非常容易出错并且难以维护。

Update by query API仅支持使用脚本进行更新,因此您可以实现一个小的组件,该组件可以根据给定的POCO实例生成脚本,以减少脚本中发生错误的可能性。

  

另一个问题是此更新需要很长时间才能更新200万行。

在您的情况下,是否可以将文档建立索引到新索引中,并using aliases指向新版本的索引?更新/删除现有索引中的数百万个文档是相对昂贵的操作。