项目使用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
}
本文介绍在Elasticsearch中实现多内容搜索时如何通过match提权和term提权来调整搜索结果的优先级,详细展示了两种提权方式的具体应用格式及场景。
1516

被折叠的 条评论
为什么被折叠?



