python Elasticsearch5.x使用
文档:http://elasticsearch-py.readthedocs.io/en/master/
Elasticsearch官方API文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html
两种方式现实Elasticsearch API操作
方式一:安装elasticsearch模块,通过它操作Elasticsearch,代码示例如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | """ pip install elasticsearch """ from elasticsearch import Elasticsearch class ElasticSearchClass( object ): def __init__( self , host, port, user, passwrod): self .host = host self .port = port self .user = user self .password = passwrod self .connect() def connect( self ): self .es = Elasticsearch(hosts = [{ 'host' : self .host, 'port' : self .port}], http_auth = ( self .user, self .password )) def count( self , indexname): """ :param indexname: :return: 统计index总数 """ return self .es.count(index = indexname) def delete( self , indexname, doc_type, id ): """ :param indexname: :param doc_type: :param id: :return: 删除index中具体的一条 """ self .es.delete(index = indexname, doc_type = doc_type, id = id ) def get( self , indexname, id ): return self .es.get(index = indexname, id = id ) def search( self , indexname, size = 10 ): try : return self .es.search(index = indexname, size = size, sort = "@timestamp:desc" ) except Exception as err: print (err) |
方式二:安装requests模块,通过GET、POST方式操作Elasticsearch
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class RequestsElasticSearchClass( object ): def __init__( self , host, port, user, passwrod): self .url = 'http://' + host + ':' + str (port) basicpwd = base64.b64encode((user + ':' + passwrod).encode( 'UTF-8' )) self .headers = { "User-Agent" : "shhnwangjian" , "Content-Type" : "application/json" , "Authorization" : "Basic {}" . format (basicpwd.decode( 'utf-8' ))} def search( self , indexname, size = 10 ): gettdata = { "sort" : "@timestamp:desc" , "size" : size} url = self .url + '/' + indexname + '/_search' ret = requests.get(url, headers = self .headers, timeout = 10 , params = gettdata) print (ret.text) |
备注:python3.6.1版本
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构