首页 > 编程语言 >使用Python对ES进行操作避坑指南

使用Python对ES进行操作避坑指南

时间:2022-09-21 15:56:17浏览次数:60  
标签:10 Python ApiError 避坑 XX elasticsearch query ES

目前负责有一个数据迁移的项目,主要涉及Mysql,TiDB,ES等数据的批量迁移。

除了功能方面的质量保证之外,还需要考虑到对迁移数据库中大量表的校验,包括数据量,数据正确性(暂定抽样)等。

对数据库操作的自动化实现暂且不表,网上应该一搜一大堆。这里主要记录一下使用python对ES的一些操作。

 

1.首先确定使用pyton第三方库 elasticsearch

 

 

 注意:这里很重要,我就是在这边被坑了挺长时间。

在安装elasticsearch库之前,你首先要确定你的目标ES的当前版本,是6.XX, 7.XX还是8.XX,

然后在软件仓库里面找到对应的版本进行安装。否则会运行报错,且报错信息显示为ApiError(一脸懵)。

E elasticsearch.ApiError: ApiError(406, 'Content-Type header [application/vnd.elasticsearch+json; compatible-with=8] is not supported', 'Content-Type header [application/vnd.elasticsearch+json; compatible-with=8] is not supported')
C:\Users\PycharmProjects\pythonProject\venv\lib\site-packages\elasticsearch\_sync\client\_base.py:322: ApiError

比如我用的是6.XX版本,那我就选择elasticsearch6这个包。

 

 

2. ES连接

 1 clent = Elasticsearch(hosts="http://10.XX.XX.XX:XXXX", http_auth=("user", "psw"))
 2         # clent = Elasticsearch(hosts=["http://user:[email protected]:XXXX"])    # 网上看到的另一种写法,虽然短但不好阅读
 3 
 4         query = {
 5             "query": {
 6                 "match_all": {}
 7             }
 8         }
 9         allDoc = clent.search(index="pay-orders-uat-template", body=query)
10         print(allDoc)

 

标签:10,Python,ApiError,避坑,XX,elasticsearch,query,ES
From: https://www.cnblogs.com/jockeyhao/p/16715869.html

相关文章