当我们在工作中,如果频繁查询 Elasticsearch 某个索引中的某个字段命中的记录数量时,可以通过 Python 的 Elasticsearch 库来查询,从而提升工作效率。
代码大致思路如下:
第一步:从 elasticsearch 模块导入 Elasticsearch 类,该类是用来连接和操作 Elasticsearch
第二步:安装 Elasticsearch 库,若未安装 elasticsearch 模块,可执行:pip install elasticsearch
命令进行安装
第三步:连接 Elasticsearch,定义 Elasticsearch 对象,并指定所要连接的 URL、端口、用户名、密码、超时时间
第四步:指定所要查询的索引,定义名为index_name
的变量,值为:es 的索引名,在 Elasticsearch 中,索引是一个类似数据库的概念,用于存储数据
第五步:创建查询条件,定义名为query
的字典,该字典包含了查询条件。
查询条件是一个bool
类型的查询,其中包含了多个terms
查询,每个terms
查询是用来匹配commandId
字段等于指定值的记录
第六步:执行查询并获取结果,使用es.search()
方法执行查询,并将结果存储在results
变量中。这个结果是一个字典,包含了查询的结果和其他相关信息
第七步:打印聚合统计信息,循环遍历结果字典中的aggregations
字段,并打印每个commandId
的值及其对应的记录总数
完整代码如下:
# 精准匹配多个指令ID,查询有多少条日志
from elasticsearch import Elasticsearch
# 如果没有 elasticsearch 模块,执行如下命令进行安装。
# pip install elasticsearch
# 连接 Elasticsearch
es = Elasticsearch(hosts="http://localhost:29204/", http_auth=("elastic", "elastic"), timeout=30)
# 指定要查询的索引
index_name = 'idc_payloadresult_20231204'
# 查询条件
query = {
"query": {
"bool": {
"must": [
{
"terms": {
"commandId": ["1024", "2048", "3072", "4096", "5120"]
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 10,
"sort": [],
"aggs": {
"commandId_counts": {
"terms": {
"field": "commandId",
},
"aggs": {
"total_count": {
"sum": {
"field": "total"
}
}
}
}
}
}
# 执行查询并获取结果
results = es.search(index=index_name, body=query)
# 打印结果中的聚合统计信息,包括每个 commandId 的总数
for bucket in results['aggregations']['commandId_counts']['buckets']:
print(bucket)
如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
2️⃣国内外Python书籍、文档
① 文档和书籍资料
3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
文章来源:https://www.toymoban.com/news/detail-777901.html
4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
文章来源地址https://www.toymoban.com/news/detail-777901.html
到了这里,关于太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!