簡體   English   中英

Boost不適用於elasticsearch function_score

[英]Boost does not apply on elasticsearch function_score

我正在使用elasticsearch-6.3.1。 以下查詢按預期工作:

"query": {
    "function_score" : {
      "query" : {
        "match_all" : {}
      },
      "functions" : [
        {
          "filter" : {
            "match_all" : {}
          },
          "script_score" : {
            "script" : { "source" : "8" }
          }
        },
        {
          "filter" : {
            "match_all" : {}
          },
          "script_score" : {
            "script" : { "source" : "4" }
          }
        }
      ],
      "score_mode" : "avg",
      "boost" : 0.5
    }
  }

返回3分(平均(6)乘以提升(0.5))。

如果我刪除其中一個功能,

"query": {
  "function_score" : {
    "query" : {
      "match_all" : {}
    },
    "functions" : [
      {
        "filter" : {
          "match_all" : {}
        },
        "script_score" : {
          "script" : { "source" : "8" }
        }
      }
    ],
    "score_mode" : "avg",
    "boost" : 0.5
  }
}

我得到的分數是8,沒有應用提升。 我在這里想念什么?

這似乎是一個Elasticsearch錯誤,但我在GitHub問題跟蹤器中看不到任何故障單。

怪異的:此查詢工作正常(只需用簡單的權重替換script_score)

 {
  "query": {
    "function_score": {
      "query": {
        "match_all": {}
      },
      "functions": [
        {
          "filter": {
            "match_all": {}
          },
          "weight": 8
        }
      ],
      "score_mode": "avg",
      "boost": 0.5
    }
  }
}

=>給出_score為4

因此,當唯一的功能是script_score -_-時,ES似乎不應用boost。

似乎在函數上加上“權重”為1可以解決此問題。

暫無
暫無

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

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