Elasticsearch python 客户端连接超时

问题描述 投票:0回答:1

我有以下错误:

elastic_transport.ConnectionTimeout: Connection timeout caused by:
ConnectionTimeout(Connection timeout caused by: 
ReadTimeoutError(HTTPConnectionPool(host='localhost', port=9200): 
Read timed out. (read timeout=9.999005171936005)))
from elasticsearch import Elasticsearch
import os
ELASTIC_PASSWORD = os.environ.get('ELASTIC_PASSWORD')
client = Elasticsearch('http://localhost:9200', basic_auth=("elastic", ELASTIC_PASSWORD), max_retries=3, retry_on_timeout=True)
doc = {
    'text': 'Interesting content',
}
client.ping() # returns True!!
# the program reports error
client.indices.create(index="test-index", timeout="30s") 

我尝试过的解决方案:

  1. 增加超时时间
  2. 将 localhost 添加到 config/elasticsearch.yml
  3. 使用未经验证的版本,即:
client = Elasticsearch('http://localhost:9200')
  1. 使用https(会产生连接错误)

另外,请注意,当我第一次安装 Elasticsearch python 客户端时,我已经能够创建一次索引。我第二次和第三次运行脚本时都失败了。我观察到的另一个行为是,即使我关闭了程序,http://localhost:9200 也始终处于打开状态...

安装:

  1. Elasticsearch - 我获取并解压它
  2. python 客户端:python -m pip install elasticsearch
elasticsearch elasticsearch-py
1个回答
0
投票

自我回答:我没有使用本地 Elasticsearch 客户端来完成它,但云客户端似乎对我来说工作得很好:

client = Elasticsearch(cloud_id="YOUR_CLOUD_ID", api_key="YOUR_API_KEY")
© www.soinside.com 2019 - 2024. All rights reserved.