Elasticsearch(ES)中 term与match之间的区别

基本介绍

term采用的是精确查询
match采用的是模糊查询
两者的区别:
当采用mathch去查询: 首先会将查询条件进行分词,然后在与文档里面的分词进行匹配,匹配度越高分数越高越前面
当采用term去查询:不会将查询条件分词,然后直接与文档里面的分词进行匹配。
详细看下面例子

例子:

首先是结构 name采用了分词
在这里插入图片描述
然后我们以“上海嘉定喜来登酒店”这个词语进行查询,首先进行手动分词我们看看结果
在这里插入图片描述
分词的结果如下图,很容易看出来“上海嘉定喜来登酒店” 这个词语进行了分词没有 上海嘉定喜来登酒店这个字段
在这里插入图片描述
如果采用term进行全名的查找,看下图很容易看出来没找到
原因刚刚说了 term 不进行分词,直接找匹配的。我们知道上海嘉定喜来登酒店分词后 没有 上海嘉定喜来登酒店这组词语所以直接失败
在这里插入图片描述
如果采用match进行全名的查找,可以找到,但是混杂着很多200条,以为是模糊查找,进行了分词匹配
在这里插入图片描述

解决方案

我就想只查找 上海嘉定喜来登酒店
我暂时想到的方案 采用boolean查询配合一下
在这里插入图片描述
有后续方案及时更新,萌新在学只是记录一下知识点而已。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值