Elasticsearch按功能得分提升每个字段

时间:2015-06-17 16:17:58

标签: elasticsearch lucene solr-boost

我有一个查询,其中包含不同字段和ORed结果的不同查询数据。我也想支持某些领域的热门歌曲。理想情况下,这只会增加排名,但不会导致结果不包含其他字段中的某些术语。这会使结果偏向具有某些领域的人。

我认为这曾经被称为提升,但由于已经从Lucene中删除了增强功能,Elasticsearch已将其替换为功能分数,我不明白如何将它们添加到我的查询中。

查询如下所示:

echo json_encode($arr);

在所有可能的点击中,我希望将排名偏向POST /index/type/_search { "query": { "bool": { "should": [{ "terms": { "field1": ["67", "93", "73", "78", "88", "77"] } }, { "terms": { "field2": ["68", "94", "72", "76", "82", "96", "70", "86", "81", "92", "97", "74", "91", "85"] } }, { "terms": { "category": ["cat2"] } }] } } } 字段中的字词。

1 个答案:

答案 0 :(得分:1)

_boost字段(文档级提升)已被删除,但field-level boostsquery boosts仍然正常。看起来您正在寻找查询提升。

所以,如果你想在field1上推广匹配:

"bool": {
    "should": [{
        "terms": {
            "field1": ["67", "93", "73", "78", "88", "77"],
            "boost": 2.0
        }
    }, {
        "terms": {
            "field2": ["68", "94", "72", "76", "82", "96", "70", "86", "81", "92", "97", "74", "91", "85"]
        }
    }, {
        "terms": {
            "category": ["cat2"]
        }
    }]
}