簡體   English   中英

每個字段的 Elasticsearch boost 函數得分

[英]Elasticsearch boost per field with function score

我有一個針對不同字段和 ORed 結果的不同查詢數據的查詢。 我也想偏愛某些領域的命中。 理想情況下,這只會提高排名,但不會導致結果不包含其他字段中的某些術語。 這會使結果偏向具有某些字段的那些。

我認為這曾經被稱為 boost,但由於 boost 已從 Lucene Elasticsearch 中刪除,已將它們替換為函數分數,我不明白如何將它們添加到我的查詢中。

查詢如下所示:

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"]
                }
            }]
        }
    }
}

在所有可能的命中中,我想將排名偏向那些具有catagory字段的術語。

_boost字段(文檔級提升)已被刪除,但字段級提升查詢提升仍然可以正常工作。 看起來您正在尋找查詢提升。

所以,如果你想提高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"]
        }
    }]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM