kibana的常用DSL语句查询(一)

2024-04-02 00:20
文章标签 查询 kibana 常用 语句 dsl

本文主要是介绍kibana的常用DSL语句查询(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

声明:如下所有的索引数据基于上一篇已经创建好的person_news索引,具体mapping及插入的数据见上一篇

1、查询索引的所有数据,适用于数据量不大的情况

GET /your_index_name/_search
{"query": {"match_all": {}}
}

2、match查询,match会对输入的关键词进行分词

GET /person_news/_search
{"query": {"match": {"newsContent": "恒大"}}
}

3、multi_match查询是Elasticsearch中常用的一种查询类型,用于在多个字段上执行相同的查询。它可以在多个字段上执行全文搜索、短语搜索、前缀搜索等操作
他的常用语法如下:

{"query": {"multi_match": {"query": "your_search_query","fields": ["field1", "field2", "field3"],"type": "best_fields","operator": "or"}}
}

query: 要在字段上搜索的查询字符串。
fields: 要搜索的字段列表。
type (可选): 指定匹配类型。常见的类型包括:
best_fields: 返回匹配任意字段的文档,默认类型。
most_fields: 返回匹配最多字段的文档。
cross_fields: 将查询视为一个整体,并搜索所有字段。
phrase: 在字段中查找完整的短语匹配。
phrase_prefix: 在字段中查找短语的前缀匹配。
operator (可选): 定义多个查询词之间的逻辑操作。默认为or。如果设置为and,则所有查询词都必须匹配。
比如:

{"query": {"multi_match": {"query": "quick brown fox","fields": ["title", "description"],"type": "cross_fields","operator": "and"}}
}

这个示例将在title和description字段上搜索包含短语"quick brown fox"的文档,并且所有的查询词都必须匹配(由operator参数指定)
再比如:在"companyName",“newsContent”,"newsTitle"三个字段里面搜索恒大关键词,匹配则返回

GET /person_news/_search
{"query": {"multi_match": {"query": "恒大","fields": ["companyName","newsContent","newsTitle"]}}
}

4、term查询,term不会对输入的关键词进行分词,es建议不要用term查询text的字段,最好查询keyword类型的字段

GET /person_news/_search
{"query": {"term": {"newsSource": {"value": "路透社"}}}
}

5、terms查询,查询用于匹配字段中的多个值。它允许您指定一个或多个可能的值,并返回匹配其中任何一个值的文档
term查询用于精确匹配单个值。terms查询用于匹配多个可能的值

GET /person_news/_search
{"query": {"terms": {"newsSource": ["新华社","美联社"]}}
}

6、bool类型查询
must等同于and
must_not 等同于 not
should 等同于 or
比如:
查询新闻来源是路透社或者是新华社同时标签里面含有许家印的新闻

GET /person_news/_search
{"query": {"bool": {"must": [{"bool": {"should": [{"match": {"newsSource": "路透社"}},{"match": {"newsSource" : "新华社"}}]}},{"term": {"labels": {"value": "许家印"}}}]}}
}

7、范围查询

GET /person_news/_search
{"query": {"range": {"hotPoint": {"gte": 1,"lte": 2}}}
}

8、根据某个字段排序,并且分页查询

GET /person_news/_search
{"query": {"match_all": {}},"sort": [{"hotPoint": {"order": "desc"}}],"from": 0,"size": 2
}

9、Wildcard通配符查询,Wildcard查询是Elasticsearch中的一种模式匹配搜索技术,允许您在文档字段中查找与通配符模式匹配的内容。通配符可以是*(匹配零个或多个字符)或?(匹配一个字符)

GET /person_news/_search
{"query": {"wildcard": {"newsSource": {"value": "新*"}}}
}

10、nested嵌套查询
如下,查询personInfo.personName=张勇 并且personInfo.age=54的数据

GET /person_news/_search
{"query": {"bool": {"must": [{"nested": {"path": "personInfo","query": {"bool": {"must": [{"term": {"personInfo.personName": {"value": "张勇"}}},{"term": {"personInfo.age": {"value": 54}}}]}}}}]}}
}

这篇关于kibana的常用DSL语句查询(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/868510

相关文章

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

浅谈mysql的sql_mode可能会限制你的查询

《浅谈mysql的sql_mode可能会限制你的查询》本文主要介绍了浅谈mysql的sql_mode可能会限制你的查询,这个问题主要说明的是,我们写的sql查询语句违背了聚合函数groupby的规则... 目录场景:问题描述原因分析:解决方案:第一种:修改后,只有当前生效,若是mysql服务重启,就会失效;

MySQL多列IN查询的实现

《MySQL多列IN查询的实现》多列IN查询是一种强大的筛选工具,它允许通过多字段组合快速过滤数据,本文主要介绍了MySQL多列IN查询的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析与优化1.

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学

Redis中的常用的五种数据类型详解

《Redis中的常用的五种数据类型详解》:本文主要介绍Redis中的常用的五种数据类型详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis常用的五种数据类型一、字符串(String)简介常用命令应用场景二、哈希(Hash)简介常用命令应用场景三、列表(L

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时