首页 > 编程知识 正文

精确查找一定是认识的人吗,精确查找和qq号查找有什么区别

时间:2023-05-05 00:40:48 阅读:284979 作者:2804

Es 精确查找的方式

 

要求:

 Es查询:

 

查询工单信息, 输入 “测试”,查出 form_name 为字段中有查询出有符合内容的数据

 

term:单字段精确查询: {"from": 0,"size": 20,"query": {"bool": {"should": [{"term": {"form_name": "测试"}}]}}}

 记录是存在的,但是没有查出来?

为啥呢?

因为form_name 进行了分词。

该如何处理呢?

是否可以让其不分词?语法怎么写? (这个我也不会,貌似一开始插入的时候,就按默认的处理了。无法进行修改了,得删索引,重新建), 有没有简单的方式处理呢?

处理:

加 keyword。因为keyword字段不会进行分词。

"term": { "form_name.keyword": "测试"}

查询索引的结构:

GET es_index/_mapping 

字符的一般有两种结构:

text  带keyword:

"title" : {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}

text:

"title" : {"type": "text"}

text:会分词,ES会先把对象进行分词处理,然后再再存入到索引。text就无法使用term查询,可以用match,就无法准确匹配。

keyword:不分词,直接整个存入索引。可以进行完整地查询!默认是256个字符

 

match_phrase :单字段半精确查询

match_phrase是短语搜索,即它会将给定的短语(phrase)当成一个完整的查询条件。

比如查询 “I will make it”,会当成一个完整的短语进行查询;因为mach_phrase类似like模糊查询,会查出含有该查询条件的内容。因此,如果是查询条件是相对固定的内容,比如状态: 开始,进行,竣工等,就可以用match_phrase

GET /basic_index*/_search{"from": 0,"size": 20,"query": {"bool": {"should": [{"match_phrase": {"form_name": "测试"}}]}}}

 

terms:多字段精确查询:

terms可以指定多字段进行模糊查询。

GET /basic_index*/_search{"size": 20,"from": 0,"query": {"bool": {"should": [{"terms": {"form_name": ["测试", "运行", "对比"]}}]}}}

 记录是存在的,但是没有查出来? 同term的情况,添加keyword 进行处理

 

总结:

   Es精确查询,单个的用term,多个的用terms,注意查询的内容是否分词,分词的添加keyword。如果查询的内容是相对固定的,可以考虑match_phrase进行处理。

   关联文章: Es 模糊查找

快三高手技巧cm;">比如查询 “I will make it”,会当成一个完整的短语进行查询;因为mach_phrase类似like模糊查询,会查出含有该查询条件的内容。因此,如果是查询条件是相对固定的内容,比如状态: 开始,进行,竣工等,就可以用match_phrase

GET /basic_index*/_search{"from": 0,"size": 20,"query": {"bool": {"should": [{"match_phrase": {"form_name": "测试"}}]}}}

 

terms:多字段精确查询:

terms可以指定多字段进行模糊查询。

GET /basic_index*/_search{"size": 20,"from": 0,"query": {"bool": {"should": [{"terms": {"form_name": ["测试", "运行", "对比"]}}]}}}

 记录是存在的,但是没有查出来? 同term的情况,添加keyword 进行处理

 

总结:

   Es精确查询,单个的用term,多个的用terms,注意查询的内容是否分词,分词的添加keyword。如果查询的内容是相对固定的,可以考虑match_phrase进行处理。

   关联文章: Es 模糊查找

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。