建设网站的价格表,网络运维工程师和网络工程师,沈阳关键词网站排名,运城购物网站开发设计作者#xff1a;JackTian 来源#xff1a;公众号「杰哥的IT之旅」 ID#xff1a;Jake_Internet 链接#xff1a;太强了#xff01;利用 Python 连接 ES 查询索引某个字段命中数的脚本#xff01; 当我们在工作中#xff0c;如果频繁查询 Elasticsearch 某个索引中的某个… 作者JackTian 来源公众号「杰哥的IT之旅」 IDJake_Internet 链接太强了利用 Python 连接 ES 查询索引某个字段命中数的脚本 当我们在工作中如果频繁查询 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(hostshttp://localhost:29204/, http_auth(elastic, elastic), timeout30) # 指定要查询的索引
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(indexindex_name, bodyquery) # 打印结果中的聚合统计信息包括每个 commandId 的总数
for bucket in results[aggregations][commandId_counts][buckets]: print(bucket)以上就是今天所要分享的全部内容了。
如果你觉得这篇文章对你有点用的话为本文点个赞、留个言或者转发一下让更多的朋友看到因为这将是我持续输出更多优质文章的最强动力