总结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索引的时候,指定具体字段使用什么分词器(否则它将使用对中文不是很友好的标准分词器)
相关文章:
总结Kibana DevTools如何操作elasticsearch的常用语句
一、操作es的工具 ElasticSearch HeadKibana DevToolsElasticHQ 本文主要是总结Kibana DevTools操作es的语句。 二、搜索文档 1、根据ID查询单个记录 GET /course_idx/_doc/course:202、term 匹配"name"字段的值为"6789999"的文档 类似于sql语句中的等…...
【QT】QT自定义C++类
在使用Qt的ui设计时,Qt为我们提供了标准的类,但是在很多复杂工程中,标准的类并不能满足所有的需求,这时就需要我们自定义C类。 下面以自定义的QPushButton作一个很简单的例子。 先新建默认Qt Widgets Application项目 一、自定义…...
【多媒体文件格式】AVI、WAV、RIFF
AVI、RIFF AVI:Audio/Video Interleaved(音频视频交织/交错),用于采集、编辑、播放的RIFF文件。由Microsoft公司1992年11月推出,是Microsoft公司开发的一种符合RIFF文件规范的数字音频与视频文件格式,原先…...
AI创作系统ChatGPT商业运营系统源码+支持GPT4/支持ai绘画
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...
JWT简介 JWT结构 JWT示例 前端添加JWT令牌功能 后端程序
目录 1. JWT简述 1.1 什么是JWT 1.2 为什么使用JWT 1.3 JWT结构 1.4 验证过程 2. JWT示例 2.1 后台程序 2.2 前台加入jwt令牌功能 1. JWT简述 1.1 什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7…...
Rust核心功能之一(所有权)
目录 1、什么是所有权? 1.1 所有权规则 1.2 变量作用域 1.3 String 类型 1.4 内存与分配 变量与数据交互的方式(一):移动 变量与数据交互的方式(二):克隆 只在栈上的数据:拷贝…...
跨域(CORS)和JWT 详解
跨域 (CORS) 概念 同源策略 (Same-Origin Policy) 同源策略是一项浏览器安全特性,它限制了一个网页中的脚本如何与另一个来源(域名、协议、端口)的资源进行交互。这对于防止跨站点请求伪造和数据泄露非常重要。 为什么需要跨域? 跨域问题通…...
前端框架Vue学习 ——(二)Vue常用指令
文章目录 常用指令 常用指令 指令: HTML 标签上带有 “v-” 前缀的特殊属性,不同指令具有不同含义。例如: v-if, v-for… 常用指令: v-bind:为 HTML 标签绑定属性值,如设置 href,css 样式等 <a v-bind:href"…...
Linux 指令心法(十四)`flash_erase` 擦除Flash存储器
文章目录 flash_erase 作用flash_erase的主要特点和使用场景flash_erase命令应用方法flash_erase命令可以解决哪些问题?flash_erase命令使用时注意事项 flash_erase 作用 这是一个用于擦除Flash存储器的命令。它可以擦除指定的Flash块或扇区,以便在写入新数据之前…...
GoLong的学习之路(二十一)进阶,语法之并发(go最重要的特点)(协程的主要用法)
并发编程在当前软件领域是一个非常重要的概念,随着CPU等硬件的发展,我们无一例外的想让我们的程序运行的快一点、再快一点。Go语言在语言层面天生支持并发,充分利用现代CPU的多核优势,这也是Go语言能够大范围流行的一个很重要的原…...
加快网站收录 3小时百度收录新站方法
加快网站收录 3小时百度收录新站方法 3小时百度收录新站方法说起来大家可能不相信,但这确实是真实的(该方法是通过技术提交,让百度快速抓取收录您的网站,不管你网站有没有备案,都能在短时间内被收录,要是你的网站迟迟不…...
GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案
目录 一、ChatGLM3 模型 二、资源需求 三、部署安装 配置环境 安装过程 低成本配置部署方案 四、启动 ChatGLM3 五、功能测试 新鲜出炉,国产 GPT 版本迭代更新啦~清华团队刚刚发布ChatGLM3,恰逢云栖大会前百川也发布Baichuan2-192K,一…...
图片怎么转换成pdf?
图片怎么转换成pdf?图片可以转换成PDF格式文档吗?当然是可以的呀,当图片转换成PDF文件类型时,我们就会发现图片更加方便的打开分享和传播,而且还可以更加安全的保证我们的图片所有性。我们知道PDF文档是可以加密的&…...
【源码】医学影像PACS实现三维影像后处理等功能
医学影像诊断技术近年来取得了快速发展,包括高性能的影像检查设备的临床应用和数字信息技术的图像显示、存储、传输、处理、识别,这些技术使得计算机辅助检测和诊断成为可能,同时人工智能影像诊断也进入了人们的视野。这些技术进步提高了疾病…...
DOCTYPE是什么,有何作用、 使用方式、渲染模式、严格模式和怪异模式的区别?
前言 持续学习总结输出中,今天分享的是DOCTYPE是什么,有何作用、 使用方式、渲染模式、严格模式和怪异模式的区别。 DOCTYPE是什么,有何作用? DOCTYPE是HTML5的文档声明,通过它可以告诉浏览器,使用那个H…...
Go语言实现HTTP正向代理
文章目录 前言实现思路代码实现 前言 正向代理(Forward Proxy)是一种代理服务器的部署方式,它位于客户端和目标服务器之间,代表客户端向目标服务器发送请求。正向代理可以用来隐藏客户端的真实身份,以及在不同网络环境…...
第11章_数据处理之增删改
文章目录 1 插入数据1.1 实际问题1.2 方式 1:VALUES的方式添加1.3 方式2:将查询结果插入到表中演示代码 2 更新数据演示代码 3 删除数据演示代码 4 MySQL8新特性:计算列演示代码 5 综合案例课后练习 1 插入数据 1.1 实际问题 解决方式&#…...
数据时代的新引擎:数据治理与开发,揭秘数据领域的黄金机遇!
文章目录 一、数据时代的需求二、数据治理与开发三、案例分析四、黄金机遇《数据要素安全流通》《Python数据挖掘:入门、进阶与实用案例分析》《数据保护:工作负载的可恢复性 》《Data Mesh权威指南》《分布式统一大数据虚拟文件系统 Alluxio原理、技术与…...
使用 Golang 实现基于时间的一次性密码 TOTP
上篇文章详细讲解了一次性密码 OTP 相关的知识,基于时间的一次性密码 TOTP 是 OTP 的一种实现方式。这种方法的优点是不依赖网络,因此即使在没有网络的情况下,用户也可以生成密码。所以这种方式被许多流行的网站使用到双因子或多因子认证中&a…...
微服务之Nacos配置管理
文章目录 一、统一配置管理Nacos操作二、统一配置管理java操作1.引入依赖2.创建配置文件3.测试4.总结 三、Nacos配置自动更新1.添加注解RefreshScope2.使用ConfigurationProperties注解3.总结 四、Nacos多环境配置共享1.配置文件2.多种配置的优先级3.总结 一、统一配置管理Naco…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
