写在前面
最近新接触使用 ElasticSearch 作为基础工具,用途主要是做匹配查询,这也是 ES 的看家本领。本篇不涉及 ES 服务的安装配置等,仅仅是一些入门的记录。
有关 ElasticSearch Python API 的资料主要来自于官网,想要达到入门级别的调用需要:
- 学习 ES 基本原理,最关键的就是 ES 如何实现搜索,涉及到集群、分布式、请求体、排序和相关性、索引和文档等,这些都是 ES 的特性,也是后面所有的基础。文档有讲基于 ES 2.x 版本,所以有些内容已经过时,但是 ES 核心的东西还是不变的;
- 了解 http 方式的请求,我觉得这点是为了更好理解 curl 的请求方式还有如何书写请求体,只有这样才能更好的使用 Python API,毕竟 Python 在 ES 的 API 里面只是个小弟,用的更多的其实是curl 方式或者 Java;
- 翻阅 ES 的 python API,没有特别多的示例,只是 API 的罗列,需要了解 curl 的调用方式,然后对照 Python API 写出代码实现功能。
安装和查看版本
我见过吐槽 ES 的版本变化的,我自己在官网中查看的 curl 例子也经常在 python 里面报错,所以猜测版本之间的差异确实值得注意。建议查询教程指南时还是要关注一下版本。
# 安装 ES API 和查看版本
pip install elasticsearch
# 版本信息,我装的是 7.16.1 的 ES Python API,这里 7.16 仅仅是 ES Python API 的,不是 ES 真实服务的
>>> import elasticsearch as ES
>>> print(ES.__version__)
(7, 16, 1)
# 导入 ES
from elasticsearch import Elasticsearch
es = Elasticsearch("xxx.xxx.xxx.xxx:9200")
print(es.info()['version']['number'])
# 这里是 ES 真实的版本吧,感觉也不是特别新啊……
'7.6.0'