前缀搜索
# 前缀搜索
注意:
前缀搜索匹配的是trem,而不是filed,倒排索引的分词
性能比较差,没有缓存
搜索时尽量把前缀词设置长一点
GET /product/_search
{"query": {"prefix": {"name": {"value": "小米"}}}
}
通配符
通配搜索匹配的是trem
GET /product/_search
{"query": {"wildcard": {"name": {"value": "耳*"}}}
}
tags.keyword 匹配的是数组里单个词
GET /product/_search
{"query": {"wildcard": {"tags.keyword": {"value": "*比"}}}
}
模糊查询
fuzzy 查询是不分词的
GET /product/_search
{"query": {"fuzzy": {"name":{"value": "耳耳机","fuzziness": 1 # 允许字符的容错个数}}}
}
短语前缀查询
match_phrase_prefix 允许查询的最后一个分词做前缀匹配
max_expansions 可以限制匹配的最大此项,设置此值可以影响查询性能,同时也会影响查询结果
slop 分词可以移动的次数,分词移动后能匹配上都会出结果
GET /product/_search
{"query": {"match_phrase_prefix": {"name":{"query": "小米耳","max_expansions": 10,"slop":2}}}
}