es基本语句详解 查询语句详解
es基本语句详解 查询语句详解
- 声明
- Rest风格
- 索引的基本操作
- 1. 创建一个索引
- 2. 查看索引 我们使用elasticsearch-head
- 3. 删除索引
- 其它命令
- ==文档的基本操作(重点)==
- 添加数据
- 修改文档
- 删除文档
- 查找(重重重点)
- 通过id查找
- 通过某个字段查找
- 指定条件查找
- 结果过滤
- 排序
- 分页查询
- 多条件或与非查找
- 过滤器:范围查找
- 精确查找
- 高亮查询
声明
本文涉及的es, elasticsearch-head, kibana, ik分词器的安装配置
可以参考我的其它博客
本文主要参考狂神说java视频课程编写。主要是为了巩固学习,复习方便。
Rest风格
索引的基本操作
1. 创建一个索引
PUT /索引名/(可选)类型名/文档id
{请求体}
2. 查看索引 我们使用elasticsearch-head
查看索引默认类型
到这里:完成了增加索引! 数据也成功的添加了
3. 删除索引
通过DELETE 命令实现删除,根据你的请求来判断删除索引还是删除文档记录
4. 创建索引类型mappings
我们创建时 创建了name类型,那需不需要指定类型呢。
下面是 es中的数据类型,我们可以不指定类型,es会帮我们默认选择类型
其它命令
- 查看健康状态
- 查看es中index索引, docs.count文档数量等信息
通过GET _cat/ 可以获取es的当前的很多信息! - 修改索引中的某个字段类型,
1. 创建一个中间索引
2. 向中间索引备份源索引的数据(mapping)
3. 查询确认数据是否copy过去
4. 删除有问题的索引
5. 重新创建同名的索引(★字段类型修改正确★)
6. 从中间索引还原到源索引的数据
7. 删除中间索引
文档的基本操作(重点)
添加数据
修改文档
下面两种方法,会将文档中指定位置的值替换。没有传递的值会被置为空
推荐的方法:加update修改方法,只会修改提交的值,没有提交的值不会修改
删除文档
直接指定文档即可
查找(重重重点)
通过id查找
通过某个字段查找
指定条件查找
hit:索引和文档的信息,查询结果的总数,然后就是查询出来的具体的文档,数据中的东西都可以遍历出来了,包括分数score判断谁最符合结果
结果过滤
我们之后使用java操作es,所有的方法都是这里的key
排序
reason: 经过查证是字段col54类型为Text格式,然后涉及到了聚合排序等功能。没有进行优化,也类似没有加索引。没有优化的字段es默认是禁止聚合/排序操作的。所以需要将要聚合的字段添加优化
正确的
分页查询
分页查询 数据下标还是从0开始
多条件或与非查找
布尔值查询–多条件查询
must命令:所有的条件都要符合,and
should 或操作
must_not 非操作
过滤器:范围查找
lt : 小于
gt : 大于
lte : 小于等于
gte : 大于等于
匹配多个条件:
多条件使用空格进行分割就可以
只要满足其中一个就可以查出
可以根据权重分支score 判断
精确查找
term 查询是直接通过倒排索引指定的字条进程精确查找!
创建demo索引,一个是text类型,一个是keyword类型
使用keyword
使用standard 可以看到被拆分了
使用term
一下两个查询,第一个根据name 是txt类型。所以只要有一个值,就会被匹配到。
第二个是根据desc 是keyword类型。 必须完全匹配才可以查询到
得出结论:keyword字段类型不会被分词器解析
多个值匹配的精确查询
高亮查询
自定义查询
i琳琳t: 可以用id拼入代码生成转账接口,很简单的!
CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天值得看】榜单,全部的排名请看 https://bbs.csdn.net/topics/619335089。
黑白极客: 讲究
2401_87560861: 怎么导入许可,卡在这步了
poplil123: 在另一个地方错怪您了,但不知道如何删除。特道歉。另外,这个软件目前使用正常,并好用。