今天突然遇到文件名搜不到的情况,查看了ES
DSL
语句,发现文件名使用query_string
查询,而文件名是keyword
类型字段。
经过实验和上网搜索,发现 keyword
类型字段是不分词的,query_string
查询是分词的,只有完全匹配才能使用 query_string
查询到 keyword
类型字段,因此模糊匹配的方式查询 keyword
类型字段,是行不通的,又是一通修改检索语句,牵一发动全身,全文检索语句迎来了一次完全修改。
要点:
-
keyword
类型的字段模糊检索需要用wildcard
来检索 -
query_string
查询是提前分词的,适合查询text
类型的字段 -
keyword
类型字段不分词