当前位置: 首页 > 知识库问答 >
问题:

如何修复Elasticsearch中的读取超时

敖子安
2023-03-14

我使用Elasticsearch-1.1.0对推文进行索引。索引过程还可以。然后我升级了版本。现在我使用Elasticsearch-1.3.2,我随机得到这条消息:

Exception happened: Error raised when there was an exception while talking to ES.
ConnectionError(HTTPConnectionPool(host='127.0.0.1', port=8001): Read timed out. (read timeout=10)) caused by: ReadTimeoutError(HTTPConnectionPool(host='127.0.0.1', port=8001): Read timed out. (read timeout=10)).

随机性快照:

Happened --33s-- Happened --27s-- Happened --22s-- Happened --10s-- Happened --39s-- Happened --25s-- Happened --36s-- Happened --38s-- Happened --19s-- Happened --09s-- Happened --33s-- Happened --16s-- Happened 

--XXs-- = after XX seconds

有人能指出如何解决读取超时问题吗?

谢谢您们。

共有3个答案

鲜于阳成
2023-03-14

当查询大小较大时,也会发生读取超时。例如,在我的 ES 索引大小非常大的情况下 (

樊桐
2023-03-14

试试这个:

es = Elasticsearch(timeout=30, max_retries=10, retry_on_timeout=True)

它可能无法完全避免ReadTimeoutError,但它将它们最小化。

袁奇逸
2023-03-14

很难给出直接答案,因为您看到的错误可能与您正在使用的客户端相关联。但是,解决方案可能是以下之一:

1.通过传递timeout参数创建ES客户端时,全局增加默认超时。Python中的示例

es = Elasticsearch(timeout=30)

2.设置客户端发出的每个请求的超时。摘自以下Elasticsearch Python文档。

# only wait for 1 second, regardless of the client's default
es.cluster.health(wait_for_status='yellow', request_timeout=1)

以上内容将为集群提供一些额外的时间来响应

 类似资料:
  • 问题内容: 我使用Elasticsearch-1.1.0为推文编制了索引。索引过程可以。然后我升级了版本。现在我使用Elasticsearch-1.3.2,并且我随机收到此消息: 随机性快照: 有人可以指出如何解决该问题吗? 非常感谢你。 问题答案: 很难给出直接答案,因为您看到的错误可能与您使用的客户端有关。但是,解决方案可能是以下之一: 1.通过传递timeout参数在创建ES客户端时全局增加

  • 问题内容: 我有一个RESTful服务器,该服务器从客户端接收http POST输入以投票表决服务器上的歌曲。我已经使用Apache HTTPClient作为客户端。 当我连续点击投票按钮时,经过几次投票(例如7-8),我得到了例外。当我搜索原因时,我发现这是因为客户端在超时期间没有得到服务器响应。但是问题是,当我使用其他应用程序(例如Chrome REST Console或JMeter)时,可以

  • 我有一个包含4个节点的ES集群: 我不得不重新启动search03,当它回来时,它没有问题地重新加入了集群,但是留下了7个未分配的碎片。 现在我的集群处于黄色状态。解决这个问题最好的办法是什么? 删除(取消)碎片? 将碎片移动到另一个节点? 将碎片分配给节点? 将“number_of_replicas”更新为2? 完全是其他吗? 有趣的是,当添加了一个新的索引时,该节点开始处理它,并与集群的其余部

  • 我正在学习Mosh Hamedani的教程“角度4:初学者到专业”。 当我试图编辑一个产品时,我试图在一个表单中显示它的标题。该产品存储在firebase数据库中。我是新来的Angular。 但是,当我转到编辑表单时,控制台中会出现此错误 这是我表格的一部分: 这是产品表单.组件.ts 怎么做才能显示产品的标题?

  • 在使用SSL的azure kubernetes服务上运行时,我的spring-boot应用程序在tomcat服务器中使用NPE启动后失败。 首先,什么能成功工作:我用Spring Initializr创建了一个最小的Spring-boot应用程序: null 我想将它与azure Cloud上的kubernetes集群一起使用。为此,我有一个Azure Kubernetes服务(AKS)。我使用j

  • 这是我的功能。显示解析错误(data.ops[0])