在聚合和基数搜索之类的查询中,可能会出现超时。在
我注意到,当从python客户机执行查询时,响应有时包含:
{
"took":1200184,
"timed_out":true,
"_shards":{
"total":84,
"successful":84,
"failed":0
}
并且返回的结果比预期的要少。在
我的主要问题是,当超时发生时,响应仍然包含许多结果。
在解析响应结果之前,我可以检查timeout是否为true,但可能有更好的方法:)。。。like raise an exception
或{}
Tags:
Elasticsearch py client有一个命名参数,您可以通过它来设置搜索请求的超时值。在
但我建议在这种情况下使用滚动来获得结果,它类似于数据库查询的游标。这里有一个非常好的example如何使用滚动。使用有限的滚动大小,请求不太可能超时,您将能够获取所有结果,而不是接收部分结果。在
带有超时参数的搜索调用示例
您可以增加elasticsearch的超时时间使用:-在
默认情况下,指定的值为10。另一方面,如果您想捕获异常,可以使用调度程序检查经过的时间,并在超出时间限制时捕获异常。在
相关问题 更多 >
编程相关推荐