项目使用elasticsearch同时搜索多个内容,需要区分优先级,故需要对优先级高部分做提权,提权分为2类:
match提权:
{
"size":10,
"_source":[
"aa",
"bb",
"cc",
"dd"
],
"query":{
"bool":{
"should":[
{
"match":{
"aa":{ --match提权字段
"boost":10, --match提权部分
"query":"金属" --match提权格式
}
}
},
{
"match":{
"bb":"金属"
}
}
],
"filter":{
"bool":{
"should":[
{
"term":{
"id":586
}
}
],
"minimum_should_match":1
}
},
"minimum_should_match":1
}
},
"highlight":{
"fields":{
"aa":{
},
"bb":{
}
}
},
"from":0
}
term提权:
{
"size":10,
"_source":[
"aa",
"bb",
"cc"
],
"query":{
"bool":{
"should":[
{
"term":{
"aa":{ --term提权字段
"boost":10, --term提权部分
"value":"时间" --term提权格式
}
}
},
{
"match":{
"bb":"时间"
}
}
],
"minimum_should_match":1
}
},
"highlight":{
"fields":{
"aa":{
},
"bb":{
}
}
},
"from":0
}