ElasticSearch 笔记四(关于文档的基本操作花式查询操作) 以及keyword ,text 类型的理解。高亮查询

这里的数据是接着上篇基础回顾的数据基础做的复杂操作

复杂查询
我们在使用mysql 的时候,经常容易出现一些复杂的查询,如:排序,分页,高亮,模糊查询,精准查询
在这里插入图片描述
上面的查询是一个精写的,我们可以拆开查询就是
在这里插入图片描述
在这里插入图片描述
我们再次查询一下“娇娇”这个词。
在这里插入图片描述
在这里插入图片描述
hit里是什么?
hit 里主要是 索引和文档的信息
查询的结果总数
查询出来的具体文档,数据中的东西都可以遍历出来了
分数:我们可以通过来判断谁更加符合结果。
这是我们现在里面有的数值
在这里插入图片描述

需求:假如我们现在要查出来的数据只出现 name不出现age
在这里插入图片描述
如果我们用Java来写的话,所有的方法和对象就变成了key

排序操作需求,假设我们现在用age 来排序
在这里插入图片描述
分页查询
在这里插入图片描述
from 是开始值,size 是结束值。
布尔值查询,多条件查询
must 命令 ,表示所有条件都要符合。 对应mysql 中的where id =xxx and name=xxx
在这里插入图片描述
should 相当于mysql 中的or 或者的意思。两个条件满足一个即可。
在这里插入图片描述
must_not查询不是 某个字段的
例子
在这里插入图片描述
在查询的时候加过滤条件的
需求假如我们现在需要查询名字叫娇娇,过滤条件是年龄大于10 岁

在这里插入图片描述
匹配多个条件的
需求假如查我们的tags 里面的 字段匹配
在这里插入图片描述

精确查询!
trem 查询是直接通过倒排索引指定的词条进程精确查找的!
关于trem 和 match 的区别
trem ,直接查询精确的。是代表完全匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇。
案例

在这里插入图片描述

match 会使用分词器解析!(会先分析文档,在通过文档进行查询)也可以理解为模糊查询

match 查询会先对搜索的词进行分词,分词完毕后再逐个对分词的结果进行匹配,因此相比于term 的精确搜索,match 是分词匹配搜索。
案例
只要搜索词的分词集合中的一个或多个存在于文档中即可。假如我们要查名字里有“张”这个概念的时候。
在这里插入图片描述
由于我的数据里有两个名字一样的,所以出来的分数是一样的。

**字段类型keyword 和text 的理解,结合代码 **

先put 几行数据
在这里插入图片描述
添加字段
在这里插入图片描述
查看
在这里插入图片描述
默认情况下keyword 是不会被分词的
在这里插入图片描述
我们可以试试在我们的代码里查询看一下
当我们是 term 查询 +text 的时候还不是精确查找。说明 text 可以被分词器分词
在这里插入图片描述
当是 trem +keyword 的时候就只能输入我们desc 里有的字段了

在这里插入图片描述
在这里插入图片描述
trem + keyword = 精确查找

keyword 不会被分词器分解。

多个值匹配的精确查询

方式一,直接用 terms 方法
在这里插入图片描述

方式二
在这里插入图片描述
高量查询

在这里插入图片描述
我们也可以设置自己的格式

在这里插入图片描述
总结
匹配查询
按照条件匹配
精确匹配
区间范围匹配
匹配字段过滤
多条件查询
高亮查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值