1、标准查询
query
match
_all
query:"搜索字符串"
operator:or
2、多匹配查询+区分权重
query
multi_match
"query":"搜索字符串"
fields:["title^100","text^10","-all"] 针对字段进行加权
3、引入短语查询
query
bool
must
multi_match
"query":"搜索字符串"
fields:["title^100","text^10","-all"] 针对字段进行加权
should
match_phrase
title":"搜索字符串"
match_phrase
text":"搜索字符串" 连续使用两遍,面向不同字段
4、引入slop参数
should
match_phrase
title":"搜索字符串"
slop:1
match_phrase
text":"搜索字符串" 连续使用两遍,面向不同字段
slop:1
5、扔掉垃圾信息(引入过滤器)
must_not
term:
redirect:true
term:
special:true
6、引入boost(需要使用function_score)
将match_phrase包装到function_score里面
……
function_score:
boost_factore:1000,
query:
match_phrase
title:
query:"搜索字符串"
slot:1