Elasticsearch中bool查询中每个部分的恒定权重

时间:2016-02-02 20:52:49

标签: elasticsearch scoring

是否可以匹配“shoulds”的数量或者每个匹配的返回恒定权重。例如,如果我有这样的bool查询:

"query": {
            "bool": {
                "should": [
                    { "match": { "last_name": "Shcheklein" }}, 
                    { "match": { "first_name": "Bart" }}
                ]
         }
   }

我想得到:

score == 1如果其中一个字段(last_namefirst_name)匹配(即使在模糊意义上) 如果两个字段匹配,则score == 2

是否可以获得匹配的字段列表?

1 个答案:

答案 0 :(得分:3)

您可以使用c onstant score来实现此目标 使用highlighting找出匹配的字段。

示例:

{
   "query": {
      "bool": {
         "disable_coord": true,
         "should": [
            {
               "constant_score": {
                  "query": {
                     "match": {
                        "last_name": "Shcheklein"
                     }
                  },
                  "boost": 1
               }
            },
            {
               "constant_score": {
                  "query": {
                     "match": {
                        "first_name": "bart"
                     }
                  },
                  "boost": 1
               }
            }
         ]
      }
   }
}