基本介绍
term采用的是精确查询
match采用的是模糊查询
两者的区别:
当采用mathch去查询: 首先会将查询条件进行分词,然后在与文档里面的分词进行匹配,匹配度越高分数越高越前面
当采用term去查询:不会将查询条件分词,然后直接与文档里面的分词进行匹配。
详细看下面例子
例子:
首先是结构 name采用了分词
然后我们以“上海嘉定喜来登酒店”这个词语进行查询,首先进行手动分词我们看看结果
分词的结果如下图,很容易看出来“上海嘉定喜来登酒店” 这个词语进行了分词没有 上海嘉定喜来登酒店这个字段
如果采用term进行全名的查找,看下图很容易看出来没找到
原因刚刚说了 term 不进行分词,直接找匹配的。我们知道上海嘉定喜来登酒店分词后 没有 上海嘉定喜来登酒店这组词语所以直接失败
如果采用match进行全名的查找,可以找到,但是混杂着很多200条,以为是模糊查找,进行了分词匹配
解决方案
我就想只查找 上海嘉定喜来登酒店
我暂时想到的方案 采用boolean查询配合一下
有后续方案及时更新,萌新在学只是记录一下知识点而已。