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

相关文章

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

MySQL中REPLACE函数与语句举例详解

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函... 目录一、REPLACE()函数语法:参数说明:功能说明:示例:二、REPLACE INTO语句语法:参数

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

MySQL慢查询工具的使用小结

《MySQL慢查询工具的使用小结》使用MySQL的慢查询工具可以帮助开发者识别和优化性能不佳的SQL查询,本文就来介绍一下MySQL的慢查询工具,具有一定的参考价值,感兴趣的可以了解一下... 目录一、启用慢查询日志1.1 编辑mysql配置文件1.2 重启MySQL服务二、配置动态参数(可选)三、分析慢查

MyBatis流式查询两种实现方式

《MyBatis流式查询两种实现方式》本文详解MyBatis流式查询,通过ResultHandler和Cursor实现边读边处理,避免内存溢出,ResultHandler逐条回调,Cursor支持迭代... 目录MyBATis 流式查询详解:ResultHandler 与 Cursor1. 什么是流式查询?