子句加权 boosting
根据negative匹配子句影响positive匹配子句的分数。
数据准备
PUT /blogs
{
"mappings" : {
"_doc" : {
"properties" : {
"title" : { "type" : "text" },
"body" : { "type" : "text" }
}
}
}
}
PUT /blogs/_doc/1
{
"title": "Quick brown rabbits",
"body": "Brown rabbits are commonly seen."
}
1. 基础算分
GET blogs/_search
{
"query": {
"match": {
"title": "rabbits"
}
}
}
基础的BM25分数为 0.2876821
2. 影响算分
GET blogs/_search
{
"query": {
"boosting": {
"positive": {
"match": {
"title": "rabbits"
}
},
"negative": {
"match": {
"body": "rabbits"
}
},
"negative_boost": 1.2
}
}
}
分数为 0.2876821 * 1.2 = 0.3452185
解释
当negative满足匹配时,得分=negative_boost * positive的query分数,否则不影响。
用途:例如我们不需要使用 bool 查询中的“NOT”子句排除文档,而仅仅降低它们的分数用于影响排名。
参数 | 说明 |
---|---|
positive | (必填项)用于执行匹配的查询子句 |
negative | (必填项)用于加权条件判断的查询子句 |
negative_boost | (必填项)加权系数,当negative查询匹配时,用于降低或提升positive匹配的文档相关性得分。 |