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