python简单操作ElasticSearch
最近工作中有用到python操作ElasticSearch,就借此记录一些常用python的API吧。ElasticSearch基础等以后有时间再去复习和整理一下。
主要就是用这俩:
from elasticsearch import Elasticsearch
from elasticsearch import helpers
使用helpers是为了如果大规模数据查询,可以用到helpers.scan查询。
首先连接到ES,创建es对象:
es = Elasticsearch(host, timeout=60)
后续查询时就是用这个es即可。(有点像连接数据库时创建的游标cursor哈)。
存储数据:
es.index(index=index, doc_type=doc_type, body=body, id=es_id)
这里只写了最常用的一些参数,其中index和doc_type的选取其实就是类似于位置和目录,需要自己提前写好。Body就是要插入的数据内容,一般是json类型,比如body可能来自于json.dumps(data)等。id也是ElasticSearch中赋予数据的一个属性值,可以是一个自增的数,也可以是按我们要插入数据中的某个独一无二的字段进行哈希后的值。
查询数据
search:
result = es.search(index=index, doc_type=doc_type, body=body)
其中index和doc_type确定在哪里查,body传的就是查询语句,也是json类型,其实整个ElasticSearch无非就是用json语句去查询数据。
对于查询到的结果,可以看看result["hits"]["hits"]中有无数据。
helpers.scan:
result = helpers.scan(client=es, index=index, doc_type=doc_type,
query=body, scroll='5m', size=10000)
参数scroll设为5m,表示查询到的数据在es中暂存5分钟再删除。Size是指指定返回数据中每页的数据条数。
关于ElasticSearch的python的API调用,我就简单地记录了一些工作中目前用得到的并且有效的一些常见用法。实际上还有这里很多参数可以去总结和分析,包括原来Search方法中有个search_type参数(该参数可以直接设置为scan)等。但ElasticSearch实在是一个改动频繁且变化大的工具,所以就算总结得再全面,也说不定马上就没法继续使用了。所以我就只记录一些最常见的参数的用法。最好的办法还是紧跟官方文档,现查现用的好。
分类:
Random note
标签:
python
, elasticsearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了