太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!

这篇具有很好参考价值的文章主要介绍了太强了!利用 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(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扫描下方二维码免费领取🆓

太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!,python,elasticsearch,jenkins,开发语言,Python入门

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!,python,elasticsearch,jenkins,开发语言,Python入门

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!,python,elasticsearch,jenkins,开发语言,Python入门

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!,python,elasticsearch,jenkins,开发语言,Python入门

2️⃣国内外Python书籍、文档

① 文档和书籍资料

太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!,python,elasticsearch,jenkins,开发语言,Python入门

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!,python,elasticsearch,jenkins,开发语言,Python入门

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!,python,elasticsearch,jenkins,开发语言,Python入门

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!,python,elasticsearch,jenkins,开发语言,Python入门

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!,python,elasticsearch,jenkins,开发语言,Python入门
太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!,python,elasticsearch,jenkins,开发语言,Python入门文章来源地址https://www.toymoban.com/news/detail-777901.html

到了这里,关于太强了!利用 Python 连接 ES 查询索引某个字段命中数的脚本!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES 通过查询更新某个字段,Error 500 (Internal Server Error)

    问题描述: 项目中通过查询ES中某个字段,并更新某个值的字段,当量比较大的时候报错: upsert associated failed: elastic: Error 500 (Internal Server Error): Failed to compile inline script [ctx._source.pcap_filename = ] using lang [painless] [type=general_script_exception] 问题解析: 1. 通过查询某个字段并更新这

    2024年02月03日
    浏览(42)
  • ES新增字段后,查询索引中不显示这个字段

    修改ES结构,新增字段 注:为避免修改后该文件结构损坏,修改前先备份 1.复制文档 2.新增字段(text类型) 3.查询字段是否添加成功 诶?!这个时候发现没有添加成功? 然后我通过es的head插件可以看到这个字段 这个时候,我们只需要对字段进行初始化,给一个默认值就解决了

    2024年02月15日
    浏览(49)
  • 【Elasticsearch】ES精确查询和范围查询,ES时间字段排序实例,ES倒排索引介绍

    termQuery matchQuery 模糊查询 multiMatchQuery 多个字段模糊查询 如果时间字段写入时用的类型是Text,可以用“时间字段.keyword”来处理 #查询前传入分页参数 #分页后拿到总记录数 把文档D对应到的映射转换为到文档ID的映射,每个都对应着一系列的文档,这些文

    2024年02月15日
    浏览(118)
  • Es索引中时间字段是字符串Range查询的正确姿势

        由于之前搞了一个使用flink-cdc将mysql表中的数据同步到es的索引中,例子中数据库中的orders表中的order_date的字段类型是datetime类型,flink-sql建表orders、enriched_orders中的order_date 字段是TIMESTAMP(0)类型,同步到es的enriched_orders索引中的order_date的类型是:     数据被同步到e

    2024年02月11日
    浏览(58)
  • java使用elasticsearchClient调用es7.17-生成连接、查询系统参数、索引相关操作

    java调用elasticsearch有几种不同的方式,考虑到以后维护方便,使用elasticSearchClient进行数据交互 首先要进行maven引入,后面两个是与json转化有关的,刚开始测试可以无需引入 1、ModelTestCase 此实体整合了与es系统有关的相关参数 2、Person 此实体主要为测试索引中的数据结构 1、生

    2024年02月15日
    浏览(49)
  • 使用python在es中基本操作详解(添加索引、查询索引、删除索引、判断索引是否存在、添加数据、更新数据、查询数据)

    示例代码1: 运行结果: 示例代码2: 运行结果: 示例代码3: 运行结果: 注意: 对比上面几种建立索引的方法,是有一定区别的。根据响应结果可以看出: es. indices.create() 方法是标准的创建索引的方法,其它几种方法在创建索引的同时也会生成一条数据,并且生成mappin

    2024年02月11日
    浏览(197)
  • mybatisPlus查询排除某个字段

    在 MyBatis Plus 中,可以使用 @TableField 注解来排除某个字段在查询中的使用。@TableField 注解提供了一些属性可以用于指定字段的行为,其中 exist 属性可以控制字段是否在 SQL 语句中出现。 以下是一个示例代码,展示如何使用 @TableField 注解排除某个字段在查询中的使用: 在上述

    2024年02月12日
    浏览(59)
  • kibana中ES修改某个字段类型问题

     近日,发现同步数据到es的时候,有个新建的索引动态适配了mapping,而往往这种会有字段类型不是我们想要的,比如我这就有个tid字段,此字段要在聚合操作中使用,而此时的tid被识别成text类型了,而text不支持聚合,所以要更改字段类型为long或者keyword,注意es 不支持直接

    2024年02月08日
    浏览(52)
  • MySQL/MariaDB 查询某个 / 多个字段重复数据

    group by name :根据 name 字段分组。 count(*) :计算每个分组的记录数量。 having count 1 :在分组后筛选分组的记录数 1 的分组。 查询结果: name count a 2 子查询:根据 name 分组,筛选分组的记录数 1 的分组,即查询重复的 name 。 外部查询:用 in 筛选 name 重复的记录。 查询结果:

    2024年02月09日
    浏览(64)
  • 通过sql语句查询出某个字段在数据库中的某个表

    新入职的小伙伴,肯定还没熟悉数据库中表于表的关系以及表中的字段的含义是什么,就需要进行需求开发,导致会出现对某个字段在哪张表里面都分辨不清,不过不要怕,可以利用已下sql语句快速找到。(要注意的是,此方法可能不适用于所有类型的数据库系统,但对于大

    2024年02月16日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包