总结Kibana DevTools如何操作elasticsearch的常用语句

一、操作es的工具

  • ElasticSearch Head
  • Kibana DevTools
  • ElasticHQ

本文主要是总结Kibana DevTools操作es的语句。

二、搜索文档

1、根据ID查询单个记录

GET /course_idx/_doc/course:20

在这里插入图片描述

2、term

匹配"name"字段的值为"6789999"的文档

  • 类似于sql语句中的等于==,属于精准匹配
GET /course_idx/_search
{"query":{"term": {"name": "6789999"}}
}

3、terms

匹配课程编号包含"C00B5230920105650700A1"、"C00B5230921171813401A8"中任意一个值的文档。

  • 类似于in集合查询

GET course_idx/_doc/_search
{"query" : {"terms" : {"courseNo" : ["C00B5230920105650700A1","C00B5230921171813401A8"],"boost" : 1.0}}
}
  • 返回内容
{"took" : 1,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0},"hits" : {"total" : 2,"max_score" : 1.0,"hits" : [{"_index" : "course_idx","_type" : "_doc","_id" : "course:23","_score" : 1.0,"_source" : {"id" : "course:23","courseType" : 0,"courseNo" : "C00B5230921171813401A8",// 省略其他字段}},{"_index" : "course_idx","_type" : "_doc","_id" : "course:7","_score" : 1.0,"_source" : {"id" : "course:7","courseType" : 0,"courseNo" : "C00B5230920105650700A1",// 省略其他字段}}]}
}

4、match

用于在文本字段中执行全文搜索,可以模糊匹配文本。它会分析文本,将其分成词汇,并搜索匹配的词汇。

GET /course_idx/_search
{"query": {"match": {"name": "课"}}
}

5、multi_match

用于在多个字段上执行全文搜索。你可以指定多个字段,并搜索它们中的匹配项。

  • 字段name或者courseNo检索匹配"课"字的记录
GET /course_idx/_search
{"query": {"multi_match": {"query": "课","fields": ["name", "courseNo"]}}
}

6、bool

  • must(必须匹配)

查询courseNo=‘C005230922B133545556M4’ and useCount=0的记录

  • 相当于sql中的and
GET /course_idx/_search
{"query": {"bool": {"must": [{ "term": { "courseNo": "C005230922B133545556M4" } },{ "term": { "useCount": "0" } }]}}
}
  • should(可以匹配,比must的强制性小得多)

查询courseNo=‘C005230922B133545556M4’ or useCount=5的记录

  • 相当于sql中的or
GET /course_idx/_search
{"query": {"bool": {"should": [{ "term": { "courseNo": "C005230922B133545556M4" } },{ "term": { "useCount": "5" } }]}}
}
  • 查询结果,匹配到了3条记录,第一条记录满足第一个条件,第二三条记录满足第二个条件。
{"took" : 1,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0},"hits" : {"total" : 3,"max_score" : 5.0834727,"hits" : [{"_index" : "course_idx","_type" : "_doc","_id" : "course:35","_score" : 5.0834727,"_source" : {"id" : "course:35","courseType" : 0,"courseNo" : "C005230922B133545556M4","useCount" : 0}},{"_index" : "course_idx","_type" : "_doc","_id" : "lecture:942","_score" : 1.0,"_source" : {"id" : "lecture:942","courseType" : 2,"courseNo" : "L005231012B1421252702M5","useCount" : 5}},{"_index" : "course_idx","_type" : "_doc","_id" : "lecture:943","_score" : 1.0,"_source" : {"id" : "lecture:943","courseType" : 2,"courseNo" : "L005231012142125B2703M4","useCount" : 5}}]}
}
  • must_not(不匹配)

对must的取反操作,它是一个逻辑非运算。

  • 类似于sql 中的 !=
GET /course_idx/_search
{"query": {"bool": {"must_not": [{ "term": { "courseNo": "C005230922B133545556M4" } }]}}
}

7、wildcard

允许使用通配符进行模糊匹配。

  • 星号* :星号用于匹配零个或多个字符。例如,app* 将匹配任何以"app"开头的词汇,例如"apple"、"application"等。

  • 问号?:问号用于匹配一个单一字符。例如,te?t 将匹配"test"、“text"等,但不会匹配"tent”,因为它包含了两个不同的字符。

GET /course_idx/_search
{"query": {"wildcard": {"name.keyword": "22*"}}
}
  • 返回报文
{"took" : 4,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0},"hits" : {"total" : 31,"max_score" : 1.0,"hits" : [{"_index" : "course_idx","_type" : "_doc","_id" : "lecture:184","_score" : 1.0,"_source" : {"id" : "lecture:184","courseType" : 2,"courseNo" : "L005B2310111036451771M7","creatorId" : 155954,"name" : "22"}},{"_index" : "course_idx","_type" : "_doc","_id" : "lecture:211","_score" : 1.0,"_source" : {"id" : "lecture:211","courseType" : 2,"courseNo" : "L005B2310111052501806M4","creatorId" : 155954,"name" : "222"}},{"_index" : "course_idx","_type" : "_doc","_id" : "lecture:557","_score" : 1.0,"_source" : {"id" : "lecture:557","courseType" : 2,"courseNo" : "L0B052310111423472182M8","creatorId" : 155954,"name" : "22222"}}]}
}

8、prefix

用于匹配字段的前缀

  • 类似于sql中的 like ‘22%’
GET /course_idx/_search
{"query": {"prefix": {"name": "22"}}
}

9、fuzzy

模糊查询name名称字段中包含"课"字的记录。

  • 依赖于分词器
GET /course_idx/_search
{"query": {"fuzzy": {"name": "课"}}
}
  • fuzzy查询还允许你配置其他选项,如模糊度、前缀长度和最大扩展数,以控制查询的模糊度和性能。

三、更新文档

POST /course_idx/_doc/course:20
{"doc": {"name": "6789"}
}// 修改成功!!
{"_index" : "course_idx","_type" : "_doc","_id" : "course:20","_version" : 14,"result" : "updated","_shards" : {"total" : 2,"successful" : 1,"failed" : 0},"_seq_no" : 11960,"_primary_term" : 1
}
  • 再次查询,发现文档的name内容是更新了,但是文档的字段也只剩下name了。

在这里插入图片描述
所以,在使用本操作语句的时候,需要特别注意这一点。

四、删除文档

DELETE /course_idx/_doc/course:20

在这里插入图片描述

五、索引

1、创建索引

这里只列举出几个字段,并不是全部字段的定义。

PUT /course_idx
{"mappings":{"_doc":{"properties":{"courseType":{"type":"integer"},"creatorId":{"type":"long"},"courseNo":{"type":"keyword"},"name":{"type":"text","fields":{"keyword":{"ignore_above":256,"type":"keyword"}}},"id":{"type":"keyword"}}}}
}

2、删除索引

谨慎操作,这个会删除掉所有数据及结构。

DELETE /course_idx

六、聚合查询

1、计数

GET /course_idx/_count// 总记录数是1153条
{"count" : 1153,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0}
}

2、平均值

统计字段useCount-使用次数的平均数

GET /course_idx/_search
{"aggs": {"avg_useCount": {"avg": {"field": "useCount"}}}
}

在这里插入图片描述

3、汇总

使用次数的汇总

GET /course_idx/_search
{"aggs": {"total_useCount": {"sum": {"field": "useCount"}}}
}

在这里插入图片描述

4、bucket桶查询

使用次数的桶统计

GET /course_idx/_search
{"aggs": {"useCount_ranges": {"range": {"field": "useCount","ranges": [{ "from": 0, "to": 5 },{ "from": 5, "to": 10 },{ "from": 10, "to": 100 }]}}}
}

在这里插入图片描述

5、最大/小值

求最大使用次数和最小使用次数。

GET /course_idx/_search
{"aggs": {"max_useCount": {"max": {"field": "useCount"}},"min_useCount": {"min": {"field": "useCount"}}}
}

在这里插入图片描述

6、日期直方图

按天的直方图,统计每天的文档数量

GET /course_idx/_search
{"aggs": {"date_histogram": {"date_histogram": {"field": "createdDate","interval": "day"}}}
}

在这里插入图片描述

七、分词器

es默认的分词器是standard。
下面以“数学的课程库”三个字为示例,看下分词结果。

GET /_analyze
{"analyzer": "standard","text": "数学的课程库"
}GET /_analyze
{"text": "数学的课程库"
}

结果都是“数”“学”“的”“课”“程”“库”。

想要更好的支持中文分词,一般的建议是按照ik分词器。
如果想要进一步自定义分词,需要编写你自己的dict文本。

  • 建议在安装es的时候,就把需用的分词器安装OK
  • 第二步在建立es索引的时候,指定具体字段使用什么分词器(否则它将使用对中文不是很友好的标准分词器)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子式电表和智能电表哪个更适合家用?

随着科技的发展,家用电力设备也在不断升级。电子式电表和智能电表作为两种常见的电表类型,究竟哪个更适合家用呢?今天,小编将会从多个角度进行全面分析,帮助大家做出明智的选择。 一、工作原理及准确性比较 1.电子式电…

工业控制系统产业联盟理事长辛耀中一行莅临麒麟信安考察交流

11月4日下午,工业控制系统产业联盟理事长辛耀中率联盟专家莅临麒麟信安考察交流,并先后来到麒麟信安、湖南欧拉生态创新中心展厅参观,麒麟信安董事长杨涛、高级副总裁陈松政、副总裁王攀等热情接待。 在麒麟信安展厅,副总裁王攀对…

JSP 学生成绩查询管理系统eclipse开发sql数据库serlvet框架bs模式java编程MVC结构

一、源码特点 JSP 学生成绩查询管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,比较流行的servlet框架系统具有完整的源代码和数据库,eclipse开发系统主要采用B/S模式 开发。 java 学生成绩查询管理系统 代码下载链接…

解决SpringBoot项目端口被占用的问题

问题描述: 在Window环境下,运行SpringBoot 项目时,出现端口被占用的问题: 解决方案: 1. 查看对应端口的进程号 netstat -ano | findstr 80802. 查看对应进程号的信息 tasklist | findstr 477963. 根据进程号 kill 进程…

【Web】在前端中,HTML<meta>标签

<meta>实例 <head><meta name"description" content"免费在线教程"><meta name"keywords" content"HTML,CSS,XML,JAVASCRIPT"><meta name"author" content"runoob"><meta char…

2.3 - 网络协议 - ICMP协议工作原理,报文格式,抓包实战

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 ICMP协议 1、ICMP协议工作原理2、ICMP协议报文格式…

[C/C++]数据结构 链表OJ题: 反转链表

描述: 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表 示例: 方法一: 让链表指向反向 如图所示: 代码思路: struct ListNode* reverseList(struct ListNode* head) {struct ListNode* n1NULL;struct ListNode* n2head;struct ListNode*…

Moco框架初探

一、简介 Moco是一个搭建模拟服务器的工具&#xff0c;其支持API和独立运行两种方式&#xff0c;前者通常在junit等测试框架中使用&#xff0c;后者则是通过运行一个jar包开启服务。 二、用途 主要用于实现mock技术 1、后端接口开发未完成情况下&#xff0c;通过moco模拟接…

猫头虎分享从Python到JavaScript传参数:多面手的数据传递术

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

网络数据包传感器简化流量监控

数据包捕获基于数据包镜像的概念&#xff0c;可用于深度数据包检查、测量应用程序的响应时间以及监视服务器、网络和用户行为&#xff0c;该技术还可用于对需要特定信息的某些区域进行广泛分析&#xff0c;尽管它有效&#xff0c;但并非在所有情况下都是必要的。要分析和管理流…

企业数字化转型与供应链效率-基准回归复刻(2007-2022年)

参照张树山&#xff08;2023&#xff09;的做法&#xff0c;本团队对来自统计与决策《企业数字化转型与供应链效率》一文中的基准回归部分进行复刻。文章实证检验企业数字化转型对供应链效率的影响。用年报词频衡量上市公司数字化转型程度&#xff0c;以库存周转天数来衡量供应…

mysql 全文检索 demo

mysql5.6.7之后开始支持中文全文检索一直没用过&#xff0c;这次试试。 创建表 CREATE TABLE articles (id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,title VARCHAR (200),body TEXT,FULLTEXT (title, body) WITH PARSER ngram ) ENGINE INNODB DEFAULT CHARSETut…

Docker学习——④

文章目录 1、Docker Image&#xff08;镜像&#xff09;2、镜像命令详解2.1 docker rmi2.2 docker save2.3 docker load2.4 docker image inspect2.5 docker history2.6 docker image prune 3、镜像综合实战3.1 离线镜像迁移3.2 镜像存储的压缩与共享 1、Docker Image&#xff…

你知道在游戏开发中怎么将算法与其作用的对象隔离开来吗?

点击上方亿元程序员关注和★星标 引言 你可能知道的设计模式-访问者模式 大家好&#xff0c;今天我们要来聊一聊在游戏开发中非常实用的设计模式——访问者模式。访问者模式是一种将算法与对象结构分离的软件设计模式&#xff0c;它可以让代码更加灵活、可扩展&#xff0c;同…

那些年遇到过的问题与解决方案

目录 一、当我们想进行数据回显并且只是让用户查看信息不能编辑时&#xff0c;置灰处理 二、多选框初始化加载问题 三、时间处理 获取当前年月日 时间自定义格式化 时间脱敏处理&#xff0c;去掉秒 四、input输入框处理 input输入框设定为只能输入0与正整数 刚进页面…

UE4 Niagara Module Script 初次使用笔记

这里可以创建一个Niagara模块脚本 创建出来长这样 点击号&#xff0c;输出staticmesh&#xff0c;点击它 这样就可以拿到对应的一些模型信息 这里的RandomnTriCoord是模型的坐标信息 根据坐标信息拿到位置信息 最后的Position也是通过Map Set的号&#xff0c;选择Particles的P…

数据库实验:SQL的数据视图

目录 视图概述视图的概念视图的作用 实验目的实验内容实验要求实验过程 视图概述 视图是由数据库中的一个表或多个表导出的虚拟表&#xff0c;其作用是方便用户对数据的操作 视图的概念 视图是一个虚拟表&#xff0c;其内容由查询定义。同真实的表一样&#xff0c;视图包含一…

安科瑞出席2023湖南智能建筑电气高峰论坛-安科瑞 蒋静

10月27日&#xff0c;安科瑞电气股份有限公司受邀出席在湖南长沙召开的2023湖南智慧建筑电气高峰论坛。会议主题是“安全、健康、智慧、创新”&#xff0c;现场汇集湖南省设计院、施工单位、高等院校和企业代表等300余人参会。 湖南省建筑设计院集团股份有限公司机电院总工、正…

原文远知行COO张力加盟逐际动力 自动驾驶进入视觉时代?

11月7日&#xff0c;通用足式机器人公司逐际动力LimX Dynamics官宣了两位核心成员的加入。原文远知行COO张力出任逐际动力联合创始人兼COO&#xff0c;香港大学长聘副教授潘佳博士为逐际动力首席科学家。 根据介绍&#xff0c;两位核心成员的加入&#xff0c;证明一家以技术驱…

Flink SQL Regular Join 、Interval Join、Temporal Join、Lookup Join 详解

Flink ⽀持⾮常多的数据 Join ⽅式&#xff0c;主要包括以下三种&#xff1a; 动态表&#xff08;流&#xff09;与动态表&#xff08;流&#xff09;的 Join动态表&#xff08;流&#xff09;与外部维表&#xff08;⽐如 Redis&#xff09;的 Join动态表字段的列转⾏&#xf…