apache lucene默認的評分公式解釋

查詢相關性,文檔對查詢的得分是如何計算出來的,什麼是文檔得分?它是一個刻畫文檔與查詢匹配程度的參數,lucene的默認評分機制:TF/IDF(詞頻/逆文檔頻率)算法

1.1  何時文檔被匹配上(文檔得分的因子)

  • 文檔權重(document boost):索引期賦予某個文檔的權重值
  • 字段權重(field boost):查詢期賦予某個字段的權重值
  • 協調因子(coord):基於文檔中詞項命中個數的協調因子,一個文檔命中了查詢中詞項越多,得分越高
  • 逆文檔頻率(inverse document frequency):一個基於詞項的因子,用來告訴評分公式該詞項有多麼罕見,逆文檔頻率越低,詞項越罕見,評分公式利用該因子爲包含罕見詞頻的文檔加權
  • 長度範數(length norm):每個字段的基於詞項個數的歸一化因子(在索引期計算出來並存儲在索引中),一個字段包含的詞項數越多,該因子的權重越低,這是意味着lucene評分公式更喜歡包含更少詞項的字段
  • 詞頻(term frequency):一個基於詞項的因子,用來表示一個詞項在某個文檔中出現了多少次,詞頻越高  文檔的得分越高
  • 查詢範數(query norm):一個基於查詢的歸一化因子,它等於查詢中詞項的權重平分和,查詢範數使得不同的查詢的得分能相互比較,儘管這種比較通常是困難而且不可行的

1.2 TF/IDF 評分公式

     公式不好書寫就不寫了

     得分的基本規則:
  1.  越多罕見的詞項被匹配上,文檔的得分越高
  2. 文檔字段越短(包含更少的詞項),文檔得分越高
  3. 權重越高(不論是索引期還是查詢器賦予的權重值),文檔得分越高

1.3    es 是如何評分的

    es使用了lucene的評分功能,但是我們可以替換默認的評分算法,用戶也可以使用各種不同的查詢類型以精確的控制文檔評分的計算
    包括(custom_boost_factor查詢    constant_score查詢    custom_score查詢等),還可以通過腳本來改變文檔的得分,還可以使用二次得分
    功能
      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章