通过字段将boost添加到前缀和match_phrase_prefix查询

时间:2017-03-22 13:10:02

标签: elasticsearch

我正在尝试将分数提升添加到我的es查询中的不同字段,以便某个字段优先于另一个字段。

我的查询如下:

"query": {
    "bool": {
        "should": [{
            "prefix": {
               "title": "נפצ"
            }},{
            "match_phrase_prefix": {
               "sub_title": "נפצע קש"
            }
        }]
    }
}

出于某种原因,使用前缀和match_phrase_prefix似乎我无法添加得分助推器。

我想要实现的目标应该是这样的:

"query": {
    "bool": {
        "should": [{
            "prefix": {
               "title": "נפצ"
               "score": 2
            }
                   },{
            "prefix": {
               "sub_title": "נפ"
               "score": 1
            }
                  }]
    }
}

1 个答案:

答案 0 :(得分:2)

[编辑]使用boost可以解决问题。根据{{​​3}},类似的东西必须适合你(虽然我没有自己尝试过):

"query": {
    "bool": {
        "should": [{
            "prefix": {
               "title": {
                  "value": "נפצ",
                  "boost": 2.0
               }
            }},{
            "match_phrase_prefix": {
               "sub_title": {
                  "query": "נפצע קש",
                  "boost": 1.0
               }
            }
        }]
    }
}