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

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

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' instead

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

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

bearer_auth='your_bearer_token'  # 替换为你的Bearer令牌
http://www.dtcms.com/a/21561.html

相关文章:

  • 内容中台:解锁企业资源整合与敏捷响应新路径
  • 25/2/16 <算法笔记> DirectPose
  • 我们来学HTTP/TCP -- 另辟蹊径从响应入手
  • 基于状态观测器和物联网基础设施的智能电网高速孤岛检测
  • Ubuntu终端的常用快捷键
  • 【网络】协议与网络版计算器
  • git cherry-pick,需要git commit、git push么?
  • c语言-链表习题
  • 【C】链表算法题7 -- 环形链表||
  • matlab汽车动力学半车垂向振动模型
  • Mac 部署Ollama + OpenWebUI完全指南
  • 第三十三周学习周报
  • 洛谷 P2894 USACO08FEB Hotel 题解
  • C语言----共用体
  • 1、云原生写在前面
  • 高并发系统-性能指标的判断
  • prompt技术结合大模型 生成测试用例
  • transformer(4):FFN 编码器块
  • Hutool - Cron:强大的定时任务模块
  • 装饰器模式
  • 双指针-三数之和
  • 【YOLOv11改进- 主干网络】YOLOv11+CSWinTransformer: 交叉窗口注意力Transformer助力YOLOv11有效涨点;
  • MongoDB:记一次数据迁移经验
  • JavaSE的基础语法(5)
  • PostgreSQL如何关闭自动commit
  • 基于Python的Flask微博话题舆情分析可视化系统
  • SaaS 平台开发要点
  • javascript-es6 (四)
  • 【NLP251】命名实体实战(基于Transformer分类)
  • 【BUUCTF逆向题】[ACTF新生赛2020]Splendid_MineCraft(SMC代码混淆)