簡體   English   中英

Elasticsearch:獲取同一個文檔中的各個字段得分

[英]Elasticsearch: obtaining each field score in the same document

假設我有一個包含三個字段的文檔: namecompanyemail每個都用 edge-ngram 映射

{
  "name": "John",
  "company": "John's company",
  "email": "johndoe@gmail.com" 
}

在搜索“john”時,我希望能夠單獨獲得每個字段的分數

{
  "query": {
    "bool": {
      "should": [
        { "match": { "name": "john" }},
        { "match": { "company": "john" }},
        { "match": { "email": "john" }}
      ]
    }
  }
}

在此示例中,將每個match子句的分數相加,然后除以match子句的數量。 那么有沒有辦法從每個match子句中單獨獲得分數,而不僅僅是整個文檔的最終分數?

我認為設置"explain": true也不理想,因為它提供了非常低級的評分細節(低效且難以解析)。

我想不出一種方法可以在不修改搜索結果的情況下執行此操作。

但是,如果您要在每個字段上使用不同的提升,您可能能夠顛倒方向來確定每個字段的值。 例如,將一個字段增加 1,將下一個字段增加 10,將最后一個字段增加 100,並檢查最終數字可能會為您提供您正在尋找的結果,但是增加 100 的字段將是唯一重要的字段。

好奇這個的應用,因為它似乎在一般情況下提升可能會解決你正在尋找的東西。

暫無
暫無

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

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