[英]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.