我有興趣瞭解更多關於Lucene查詢得分的更具體的信息。在他們的文檔中,他們提到了VSM。我熟悉VSM,但它似乎與他們所允許的查詢類型不一致。瞭解Lucene查詢
我嘗試通過BooleanScorer2和BooleanWeight的源代碼,並沒有真正有效。
我的問題是,有人可以通過執行BooleanScorer來解釋它如何組合查詢。
另外,有沒有辦法簡單地發出幾個條款,只是得到這些條款的原始tf.idf分數,它在文檔中描述的方式?
我有興趣瞭解更多關於Lucene查詢得分的更具體的信息。在他們的文檔中,他們提到了VSM。我熟悉VSM,但它似乎與他們所允許的查詢類型不一致。瞭解Lucene查詢
我嘗試通過BooleanScorer2和BooleanWeight的源代碼,並沒有真正有效。
我的問題是,有人可以通過執行BooleanScorer來解釋它如何組合查詢。
另外,有沒有辦法簡單地發出幾個條款,只是得到這些條款的原始tf.idf分數,它在文檔中描述的方式?
的地方,開始是http://lucene.apache.org/java/3_3_0/api/core/org/apache/lucene/search/Similarity.html
我認爲這清除了你的不一致? Lucene結合了信息檢索的布爾模型(BM)和信息檢索的向量空間模型(VSM) - 由BM「批准」的文件由VSM評分。
接下來要看的是Searcher.explain,它可以給你一個字符串,解釋如何計算(查詢,文檔)對的分數。
通過執行BooleanScorer來跟蹤我可能很具有挑戰性,我認爲它最容易首先理解BooleanScorer2,它使用像ConjunctionScorer/DisjunctionSumScorer這樣的子核心,並將BooleanScorer視爲優化。
如果這讓人困惑,那麼在TermScorer上開始更簡單。我個人看它「自下而上」反正:
一般來說,由於在所有發佈的表單中,記分員負責兩件事情:匹配和計算分數,因此很難追蹤lucene記分文件的方式。在Lucene的主幹(http://svn.apache.org/repos/asf/lucene/dev/trunk/)中,這些現在是分開的,這樣一種相似性基本上對評分的所有方面負責,並且這是分開的從匹配。所以這裏的API可能更容易理解,也許更難,但至少你可以參考許多其他評分模型(BM25,語言模型,隨機性背離,基於信息的模型)的實現,如果你感到困惑:http://svn.apache.org/repos/asf/lucene/dev/branches/flexscoring/lucene/src/java/org/apache/lucene/search/similarities/
如果我問的話,請提供,但是有沒有理由不接受RObert的答案?看起來他徹底解釋了一切! – javanna