Pythonelasticsearch客户端连接常见问题整理
- 游戏开发
- 2025-09-07 14:15:01

python 访问 elasticsearch
在python语言中,我们一般使用 pip install elasticsearch 软件包,来访问es服务器。
正确用法本地安装elasticsearch时,应指定与服务端相同的大版本号:
pip install elasticsearch==7.17.0然后就可以正确创建ES客户端对象了。访问es服务端的代码格式,建议如下:
from elasticsearch import Elasticsearch es = Elasticsearch("http://username:password@host:port") # 或者采用如下方式创建,一般用于es集群连接: es = Elasticsearch( [{'host': "192.168.1.1", 'port': 9200, 'scheme': "http"}], http_auth=(username, password) ) print(es.info()) print(es.ping()) # True or False 常见错误使用 python elasticsearch 连接ES服务器过程,主要问题是客户端与服务端的版本不匹配。
1. 版本不一致默认情况下,使用 pip install elasticsearch 安装的 es客户端版本是最新的8.17版。而ES服务端的版本是7。 当客户端与服务端的大版本不一致时,将会报错(UnsupportedProductError)。
2.缺少scheme TypeError: NodeConfig.__init__() 缺少 scheme 3.无法识别ES服务端错误创建的客户端对象,无法访问和识别ES服务端。 客户端创建代码:
es = Elasticsearch( [{'host': "192.168.1.1", 'port': 9200}], basic_auth=(username, password) )报错信息:
ElasticsearchWarning: The client is unable to verify that the server is Elasticsearch due security privileges on the server side 4.http_auth 废弃elasticsearch v7版本使用 http_auth 创建Elasticsearch客户端对象。而 v8版本废弃了http_auth,改用 basic_auth 或 bearer_auth。因此,当使用v8版本的elasticsearch客户端时,以下代码将报错:
es = Elasticsearch( [{'host': "192.168.1.1", 'port': 9200}], http_auth=(username, password) )执行代码提示 es中的 http_auth已废弃:
es the 'http_auth' parameter is deprecated, use 'basic_auth' or 'bearer_auth' insteadbasic_auth 接受一个元组,包含你的用户名和密码,用法与v7的 http_auth相同。
bearer_auth 适用于使用Bearer令牌时(例如通过OAuth2获取的访问令牌)。
bearer_auth='your_bearer_token' # 替换为你的Bearer令牌Pythonelasticsearch客户端连接常见问题整理由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Pythonelasticsearch客户端连接常见问题整理”