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)
    这里只写了最常用的一些参数,其中indexdoc_type的选取其实就是类似于位置和目录,需要自己提前写好。Body就是要插入的数据内容,一般是json类型,比如body可能来自于json.dumps(data)等。id也是ElasticSearch中赋予数据的一个属性值,可以是一个自增的数,也可以是按我们要插入数据中的某个独一无二的字段进行哈希后的值。
查询数据
search
result = es.search(index=index, doc_type=doc_type, body=body)
    其中indexdoc_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是指指定返回数据中每页的数据条数
    关于ElasticSearchpythonAPI调用,我就简单地记录了一些工作中目前用得到的并且有效的一些常见用法。实际上还有这里很多参数可以去总结和分析,包括原来Search方法中有个search_type参数(该参数可以直接设置为scan)等。但ElasticSearch实在是一个改动频繁且变化大的工具,所以就算总结得再全面,也说不定马上就没法继续使用了。所以我就只记录一些最常见的参数的用法。最好的办法还是紧跟官方文档,现查现用的好。

posted @   JunanP  阅读(22)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示