当前位置: 首页 > news >正文

Python elasticsearch客户端连接常见问题整理

python 访问 elasticsearch

在python语言中,我们一般使用 pip install elasticsearch 软件包,来访问es服务器。

正确用法

本地安装elasticsearch时,应指定与服务端相同的大版本号:

pip install elasticsearch==7.17.0

然后就可以正确创建ES客户端对象了。访问es服务端的代码格式,建议如下:

from elasticsearch import Elasticsearches = 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' instead

basic_auth 接受一个元组,包含你的用户名和密码,用法与v7的 http_auth相同。

bearer_auth 适用于使用Bearer令牌时(例如通过OAuth2获取的访问令牌)。

bearer_auth='your_bearer_token'  # 替换为你的Bearer令牌
http://www.lryc.cn/news/538764.html

相关文章:

  • 目标检测IoU阈值全解析:YOLO/DETR模型中的精度-召回率博弈与工程实践指南
  • 算法——数学建模的十大常用算法
  • Electron:使用electron-react-boilerplate创建一个react + electron的项目
  • 在linux系统中安装Anaconda,并使用conda
  • 渗透测试--文件包含漏洞
  • Go入门之语言变量 常量介绍
  • DeepSeek R1 与 OpenAI O1:机器学习模型的巅峰对决
  • 【机器学习】深入浅出KNN算法:原理解析与实践案例分享
  • C#使用文件读写操作实现仙剑五前传称号存档修改
  • 计算机专业知识【探秘 C/S 工作模式:原理、应用与网络协议案例】
  • Django创建一个非前后端分离平台
  • 适用于iOS的应用商店优化(ASO)清单
  • SSH远程服务器免密码连接|含注意事项细节
  • 本地通过隧道连接服务器的mysql
  • Hadoop 基础原理
  • JavaScript 任务队列详解:Event Loop、宏任务与微任务
  • VScode运行后出现黑窗口
  • 华为昇腾 910B 部署 DeepSeek-R1 蒸馏系列模型详细指南
  • vue3项目实践心得-多次渲染同一svg + 理解v-if、transition、dom加载之间的顺序
  • 【实战项目】BP神经网络识别人脸朝向----MATLAB实现
  • java数据结构_二叉树_5.5
  • Deepseek-R1推理模型API接入调用指南 ChatGPT Web Midjourney Proxy 开源项目接入Deepseek教程
  • 计算机网络(4)TCP断开
  • 科技云报到:科技普惠潮流渐起,“开源”将带我们走向何方?
  • 【论文笔记】On Generative Agents in Recommendation
  • 使用 Spring Boot 和 Canal 实现 MySQL 数据库同步
  • vue3 在element-plus表格使用render-header
  • 算法——结合实例了解Minimax算法(极小化极大算法)
  • 使用 DeepSeek 生成商城流程图
  • 什么是GraphQL?