Elasticsearch score 评分计算

2018-06-09 09:48:09
1170次阅读
0个评论

function_score  自定义 score 评分使用 函数  
  
min_score 最小score 的值, 显示大于当前score 的值  
  
score_mode score 评分计算方式 ;   
  
script_score script 的作用 ,如果 rank 字段的值等于 0 该记录的score 评分 = score评分 - 4; 比如 原来 评分 10 现在的评分是6   
  
sort 按照 score 评分进行排序  



{  
  "from": 0,  
  "size": "100",  
  "min_score": 1,  
  "query": {  
    "function_score": {  
      "filter": {  
        "bool": {  
          "should": {  
            "multi_match": {  
              "query": "bmw",  
              "fields": [  
                "name",  
                "host"  
              ]  
            }  
          }  
        }  
      },  
      "functions": [  
        {  
          "filter": {  
            "match": {  
              "name": {  
                "query": " bmw",  
                "minimum_should_match": "100%"  
              }  
            }  
          },  
          "weight": "4"  
        },  
        {  
          "filter": {  
            "match": {  
              "host": "bmw"  
            }  
          },  
          "weight": "10"  
        },  
        {  
          "script_score": {  
            "script": "width=doc['rank'].value;if(width==0){return -4};return 0"  
          }  
        }  
      ],  
      "score_mode": "sum"  
    }  
  },  
  "sort": [  
    {  
      "_score": {  
        "order": "desc"  
      }  
    }  
  ]  
}


收藏00

登录 后评论。没有帐号? 注册 一个。