我曾经使用以下代码连接elasticsearch 7自管理集群。
from elasticsearch import Elasticsearch,RequestsHttpConnection
es = Elasticsearch(['hostname'], timeout=1000,http_auth=('user_name', 'password'),use_ssl=True,verify_certs=True,connection_class=RequestsHttpConnection,scheme="https",port=9200)
将ElasticSearch更新到8.5后,大多数参数无效。需要帮助以找出在ElasticSearch8.5中连接弹性集群的正确方法。
1条答案
按热度按时间byqmnocz1#
在Elasticsearch 8.X中,Elasticsearch API有了显著的变化。
现在,在Elasticsearch 8.X中,
scheme
和port
需要作为主机名的一部分明确包含,例如scheme://hostname:port
(https://localhost:9200)应该将
http_auth
更新为basic_auth
。您可以在此处查看所有其他可用选项。因此,要连接的新代码片段将类似于-在执行查询时,请求/响应也有重大变化,因此我建议读取this。
如果你正在从7.X迁移到elasticsearch 8.X,短期内,还有另一种解决方法,它不需要任何代码更改,只需要在python应用程序中设置
ELASTIC_CLIENT_APIVERSIONING=1
env变量。启用兼容模式并升级Elasticsearch
将您的Elasticsearch客户端升级到7.16:
$ python -m pip install --upgrade 'elasticsearch>=7.16,<8
如果您有现有的应用程序,请设定
ELASTIC_CLIENT_APIVERSIONING=1
环境变量来启用相容性模式。这会指示Elasticsearch服务器接受并回应与7.x相容的要求和回应。https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/migration.html#migration-compat-mode