Python elasticsearch-dsl doctype 更新超时

问题描述

我在 Python 中使用 elasticsearch-dsl 定义了一个模型,如下所示:

class Fruit(DocType):
    class Meta:
        doc_type = 'fruit'

    class Index:
        doc_type = 'fruit'

    index_name = 'fruits'
    
    ...

并且我使用 update 方法更新此模型上的字段之一,如下所示:

def update_color(self,color):
    self.update(color=color)

问题是如何定义更新超时?我客户的基础设施很糟糕,ES 经常抛出超时,我想为这个更新操作增加它,就像我在 Search 对象上做的那样:

search_obj.update_from_dict({'timeout': '60s'})

我找不到任何设置 DocType 更新操作超时的方法...

解决方法

我想出了如何做到这一点...

来自 DocType 的

update 没有设置超时的选项,但是如果我们更深入地了解 updateelasticsearch-dsl 有一个来自 update 包的 elasticsearch 和这里我们可以设置一些超时。我解决了这个问题,并使用了 update 包中的 elasticsearch 而不是 elasticsearch-dsl 一个。