ElasticSearch语法
Elasticsearch 概念
入门学习:
- Index索引=>MySQL 里的表(table)
- 建表、增删改查(查询需要花费的学习时间最多)
- 用客户端去调用 ElasticSearch(3 种)
- 语法:SQL、代码的方法(4 种语法)
ES 相比于 MySQL,能够自动帮我们做分词,能够非常高效、灵活地查询内容。
索引(倒排索引)
正向索引:理解为书籍的目录,可以快速帮你找到对应的内容(怎么根据页码找到文章)
倒排索引:怎么根据内容找到文章
文章 A: 你好,我是 rapper
文章 B: 苏麟暴打小杨科
切词 :
| 词 | id |
| 你好 | 文章 A |
| 我 | 文章 A |
| rapper | 文章 A |
| 苏麟 | 文章 B |
| 暴打 | 文章 B |
| 杨科 | 文章 B |
用户搜索 : 苏麟杨科
ES切词 : 苏麟 , 杨科
然后去倒排索引表找对应的文章
ES 的几种调用方式
1) restful api 调用(http 请求)
GET请求 : localhost:9200
curl 可以模拟发送请求: curl -XGET"localhost:9200/?pretty
ES 的启动端口
1.9200:给外部用户(给客户端调用)的端口
2.9300:给 ES 集群内部通信的(外部调用不了的)
2) kibana devtools
自由地对 ES 进行操作(本质也是 restful api)
devtools 不建议生产环境使用
3)客户端调用
java 客户端、go 客户端等。
参考文档 : Getting started | Elasticsearch Java API Client [7.17] | Elastic
ES 的语法
DSL
json 格式,好理解;和 http 请求最兼容,应用最广
建表,插入数据 (文档就是MySQL里的表,映射就是MySQL里的字段)
post 就相当于表名 , title 和 content 就相当于字段
POST post/_doc
{"title":"苏麟","content":"苏麟暴打小杨科"
}
有 successful 就代表存入成功了

查询
DSL (不要背) : Query DSL | Elasticsearch Guide [7.17] | Elastic
查询全部
GET post/_search
{"query": {"match_all": {}}
}

根据 id 查询
GET post/_doc/UBHryo0B5ErW0HhSBc0q

修改
根据 id 修改
POST post/_doc/UBHryo0B5ErW0HhSBc0q
{"title":"杨科","content":"杨科委委屈屈!"
}

删除
根据文档删除
DELETE post

EQL
专门查询 ECS 文档(标准指标文档)的数据的语法,更加规范,但只适用于特定场景(比如事件流)
文档 : EQL search | Elasticsearch Guide [7.17] | Elastic
建表,插入
POST post_my/_doc
{"title": "苏麟爱看美女","@timestamp": "2099-05-06T16:21:15.000Z","event": {"original": "192.0.2.42 - - [06/May/2099:16:21:15 +0000] \"GET /images/bg.jpg HTTP/1.0\" 200 24736"}
}
查询
GET post_my/_search
{"query": {"match_all": { }},"sort": [{"@timestamp": "desc"}]
}

SQL
文档 : Getting Started with SQL | Elasticsearch Guide [7.17] | Elastic
查询
POST /_sql?format=txt
{"query": "SELECT * FROM post "
}

Painless Scripting language
编程式取值,更灵活,但是学习成本高
Mapping
文档 : Explicit mapping | Elasticsearch Guide [7.17] | Elastic
可以理解为数据库的表结构,有哪些字段、字段类型,
ES 支持动态 mapping,表结构可以动态改变,而不像 MySQL 一样必须手动建表,没有的字段就不能插入。
GET user/_mappingPUT /user
{"mappings": {"properties": {"age": { "type": "integer" }, "email": { "type": "keyword" }, "name": { "type": "text" } }}
}
分词器
指定了分词的规则。
内置分词器 : Built-in analyzer reference | Elasticsearch Guide [7.17] | Elastic
示例 :
空格分词器: whitespace,结果The、quick、brown、fox.
POST _analyze
{"analyzer": "whitespace","text": "The quick brown fox."
}

标准分词规则,结果:is、this、deja、vu
POST _analyze
{"tokenizer": "standard","filter": [ "lowercase", "asciifolding" ],"text": "Is this déja vu?"
}

关键词分词器:就是不分词,整句话当作专业术语
GET _analyze
{"analyzer": "keyword", "text": "Is this sl?"
}

这期就到这里 , 下期见 !
相关文章:
ElasticSearch语法
Elasticsearch 概念 入门学习: Index索引>MySQL 里的表(table)建表、增删改查(查询需要花费的学习时间最多)用客户端去调用 ElasticSearch(3 种)语法:SQL、代码的方法(4 种语法) ES 相比于 MySQL,能够自动帮我们做分词,能够非常高效、灵活地查询内…...
SMT贴片加工厂需要哪些加工资料
SMT贴片加工中在评估报价的时候需要给到SMT贴片加工厂以下资料,以便工程师和采购进行工艺和报价评估。 在SMT加工中如果需要供应商提供一站式的加工服务,那么在前期就需要更频繁的沟通和配合,包工包料服务是需要PCB制板资料和制板说明、BOM清…...
jmeter下载base64加密版pdf文件
一、何为base64加密版pdf文件 如下图所示,接口jmeter执行后,返回一串包含大小写英文字母、数字、、/、的长字符串,直接另存为pdf文件后,文件有大小,但是打不开;另存为doc文件后,打开可以看到和…...
【regex】正则表达式
集合 [0-9.] [0-9.\-] 例子 正则表达式,按照规则写,写的时候应该不算困难,但是可读性差 不同语言中regex会有微小的差异 vim 需要转义, perl/python中不需要转义 锚位 \b am\b i am 命名 / 命名捕获组 ( 捕获组(…...
78.Spring和SpringBoot的关系和区别?
一、Spring和SpringBoot的关系和区别 SpringBoot是Spring生态的产品。 Spring Framework是一个容器框架 SpringBoot 它不是一个框架、它是一个可以快速构建基于Spring的脚手架(里面包含了Spring和各种框架),为开发Spring生态其他框架铺平道路࿰…...
【PyTorch][chapter 17][李宏毅深度学习]【无监督学习][ Auto-encoder]
前言: 本篇重点介绍AE(Auto-Encoder) 自编码器。这是深度学习的一个核心模型. 自编码网络是一种基于无监督学习方法的生成类模型,自编码最大特征输出等于输入 Yann LeCun&Bengio, Hinton 对无监督学习的看法. 目录: AE 模型原…...
Modern C++ std::variant的实现原理
前言 std::variant是C17标准库引入的一种类型,用于安全地存储和访问多种类型中的一种。它类似于C语言中的联合体(union),但功能更为强大。与联合体相比,std::variant具有类型安全性,可以判断当前存储的实际…...
⭐北邮复试刷题LCR 018. 验证回文串__双指针 (力扣119经典题变种挑战)
LCR 018. 验证回文串 给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。 本题中,将空字符串定义为有效的 回文串 。 示例 1: 输入: s “A man, a plan, a canal: Panama” 输出: true 解释…...
C++面试:数据库的权限管理数据库的集群和高可用
目录 一、数据库的权限管理 1. 用户和角色管理 用户管理 实例举例(以MySQL为例): 角色管理 实例举例(以MySQL为例): 总结 2. 权限和授权 用户和角色管理 用户管理 角色管理 权限和授权 权限 授…...
个人搭建部署gpt站点
2024搭建部署gpt 参照博客 https://cloud.tencent.com/developer/article/2266669?areaSource102001.19&traceIdRmFvGjZ9BeaIaFEezqQBj博客核心点 准备好你的 OpenAI API Key; 点击右侧按钮开始部署: Deploy with Vercel,直接使用 Github 账号登…...
samber/lo 库的使用方法: condition
samber/lo 库的使用方法: condition samber/lo 是一个 Go 语言库,使用泛型实现了一些常用的操作函数,如 Filter、Map 和 FilterMap。汇总目录页面 这个库函数太多,因此我决定按照功能分别介绍,本文介绍的是 samber/l…...
Chrome插件精选 — 缓存清理
Chrome实现同一功能的插件往往有多款产品,逐一去安装试用耗时又费力,在此为某一类型插件挑选出比较好用的一款或几款,尽量满足界面精致、功能齐全、设置选项丰富的使用要求,便于节省一个个去尝试的时间和精力。 1. Chrome清理大师…...
Redis之缓存穿透问题解决方案实践SpringBoot3+Docker
文章目录 一、介绍二、方案介绍三、Redis Docker部署四、SpringBoot3 Base代码1. 依赖配置2. 基本代码 五、缓存优化代码1. 校验机制2. 布隆过滤器3. 逻辑优化 一、介绍 当一种请求,总是能越过缓存,调用数据库,就是缓存穿透。 比如当请求一…...
每日shell脚本之超级整合程序3.0
每日shell脚本之超级整合程序3.0 本期带来之前的升级版2.0整合脚本程序,学习工作小利器,同时模块化构建方便二次开发。 上图 上源码 #!/usr/bin/bash # *******************************************# # * CDDN : M乔木 # # * qq邮箱 …...
Docker介绍与使用
Docker介绍与使用 目录: 一、Docker介绍 1、Docker概述与安装 2、Docker三要素 二、Docker常用命令的使用 1、镜像相关命令 2、容器相关命令 三、Docker实战之下载mysql、redis、zimg 一、Docker介绍 Docker是一个开源的应用容器引擎,让开发者可以打包…...
Gin框架: 使用go-ini配置参数与不同环境下的配置部署
关于 INI 配置文件与go-ini 1 )概述 在INI配置文件中可以处理各种数据的配置INI文件是一种简单的文本格式,常用于配置软件的各种参数go-ini 是地表 最强大、最方便 和 最流行 的 Go 语言 INI 文件操作库 Github 地址:https://github.com/go-…...
探究网络工具nc(netcat)的使用方法及安装步骤
目录 🐶1. 什么是nc(netcat)? 🐶2. nc(netcat)的基本使用方法 2.1 🥙使用 nc 进行端口监听 2.2 🥙使用 nc 进行端口扫描 2.3 🥙使用 Netcat 进行文件传输…...
深入浅出JVM(四)之类文件结构
深入浅出JVM(四)之类文件结构 Java文件编译成字节码文件后,通过类加载机制到Java虚拟机中,Java虚拟机能够执行所有符合要求的字节码,因此无论什么语言,只要能够编译成符合要求的字节码文件就能够被Java虚拟…...
Anaconda下的pkgs占用空间13G,如何安全的清理(已解决)
方法一:让Anaconda自行决定清理 执行命令 conda clean -p 我的Anaconda安装在D盘,具体位置如下。你的应该也能找到对应的位置 D:\*****\**\Anaconda3\pkgs (base) C:\Users\Liu_J>conda clean -p WARNING: C:\Users\***\.conda\pkgs does not ex…...
压缩感知常用的重建算法
重建算法的基本概念 在压缩感知(Compressed Sensing, CS)框架中,重建算法是指将从原始信号中以低于奈奎斯特率采集得到的压缩测量值恢复成完整信号的数学和计算过程。由于信号在采集过程中被压缩,因此重建算法的目标是找到最符合…...
如何快速下载Steam创意工坊壁纸:Wallpaper Engine下载器完全指南
如何快速下载Steam创意工坊壁纸:Wallpaper Engine下载器完全指南 【免费下载链接】Wallpaper_Engine 一个便捷的创意工坊下载器 项目地址: https://gitcode.com/gh_mirrors/wa/Wallpaper_Engine 你是否曾在Steam创意工坊中发现心仪的动态壁纸,却因…...
安卓APP通过JNI调用ATSHA204A加密芯片实战指南
1. 项目概述与核心需求解析 在安卓应用开发领域,尤其是涉及物联网、金融支付、版权保护等高安全要求的场景,单纯依靠软件层面的加密算法已经不足以应对日益复杂的攻击手段。硬件加密芯片,如ATSHA204A,以其物理隔离、密钥不可读取等…...
美团春招笔试“小美的朋友关系”全网无AC?我用逆向并查集搞定它(附完整代码)
逆向并查集:破解美团笔试"小美的朋友关系"难题 大厂算法笔试中,总有一两道题能卡住绝大多数求职者。今年美团春招的"小美的朋友关系"就是这样一道"拦路虎"——全网找不到AC代码,无数人在超时和错误答案中挣扎。…...
Swift底层多线程:POSIX线程封装与安全并发实践
1. 项目概述:当Swift遇见POSIX线程如果你在Swift里用过DispatchQueue或者Thread,有没有想过它们背后到底是怎么运作的?特别是当你的应用需要处理高并发、低延迟的任务,或者需要在Linux服务器上跑一个Swift后端服务时,仅…...
独角数卡支付系统:如何构建高可用的自动售货支付解决方案
独角数卡支付系统:如何构建高可用的自动售货支付解决方案 【免费下载链接】dujiaoka 🦄独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速!🚀🚀🎉🎉 项目地址: https://g…...
【网络安全】Web安全防护:从XSS到CSRF的攻防实战
【网络安全】Web安全防护:从XSS到CSRF的攻防实战 引言 Web安全是现代应用开发中不可忽视的重要环节。随着Web应用的普及,各种安全威胁也日益增多。本文将详细介绍常见的Web安全漏洞及其防护方法。 一、XSS攻击与防护 1.1 XSS类型 类型说明攻击方式存储型…...
phpenv终极指南:5分钟掌握PHP多版本管理的完整解决方案
phpenv终极指南:5分钟掌握PHP多版本管理的完整解决方案 【免费下载链接】phpenv Simple PHP version management 项目地址: https://gitcode.com/gh_mirrors/ph/phpenv 还在为不同PHP项目间的版本冲突而烦恼吗?phpenv为您提供了一站式PHP版本管理…...
Show-o多模态理解:图像描述和视觉问答的终极解决方案
Show-o多模态理解:图像描述和视觉问答的终极解决方案 【免费下载链接】Show-o [ICLR & NeurIPS 2025] Repository for Show-o series, One Single Transformer to Unify Multimodal Understanding and Generation. 项目地址: https://gitcode.com/gh_mirrors/…...
dvwa靶场Dom型xss通关
黑盒操作 LOW 一、这是一个选项框内容,发现输入内容会直接改变选项内容,查看代码后发现js代码 // 这是通过字符串拼接创建出页面显示选项 if (document.location.href.indexOf("default") > 0) { // 拼接document.location.href.in…...
5个真正赚钱的 AI 工作流 (2026)
AI驱动的创作者经济预计在2026年将达到57.1亿美元。但大多数使用AI工具的人仍然把它们当作搜索引擎——提问,获取答案,关闭标签页,明天重新开始。真正赚到钱的人发现了不同的东西:他们建立了能复合增长的工作流。代理每次运行都会…...
