软件科技公司网站模板下载,jsp网站建设作业,中国空间站首次太空授课,联盟设计库python 访问 elasticsearch
在python语言中#xff0c;我们一般使用 pip install elasticsearch 软件包#xff0c;来访问es服务器。
正确用法
本地安装elasticsearch时#xff0c;应指定与服务端相同的大版本号#xff1a;
pip install elasticsearch7.17.0然后就可以…python 访问 elasticsearch
在python语言中我们一般使用 pip install elasticsearch 软件包来访问es服务器。
正确用法
本地安装elasticsearch时应指定与服务端相同的大版本号
pip install elasticsearch7.17.0然后就可以正确创建ES客户端对象了。访问es服务端的代码格式建议如下
from elasticsearch import Elasticsearches Elasticsearch(http://username:passwordhost: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__() 缺少 scheme3.无法识别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 side4.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_authyour_bearer_token # 替换为你的Bearer令牌