2015-02-11 98 views
0

我有兩個從目錄「test1」和「test2」創建的索引。 「test1」目錄有「file1.java」,而「test2」有兩個文件「file1.java」和「file2.java」。 「file1.java」在兩個目錄中都是相同的。讓索引分別爲index1和index2。Lucene搜索評分問題

現在,當我使用luke分析這兩個索引時,我發現索引1中搜索的關鍵字的分數與索引2中生成的分數不同。該關鍵字僅存在於「file1.java」中。

爲什麼分數不同?有沒有什麼辦法在Lucene中建立索引,我可以用它來強制分數相同?

回答

0

lucene中的得分可用於比較查詢結果與單個查詢的相關性。它們並不旨在允許您比較不同索引之間或不同查詢之間的結果,也可以保存它們並將它們與以後的運行進行比較。它們只對返回的查詢結果集和索引的當前狀態有效。有關更多關於Lucene Scores as Percentages的文章,請參閱這篇關於爲什麼這是壞主意以此方式使用lucene分數的文章。

畢竟,Lucene是使用TF-IDF算法進行評分的。您應該期望IDF分數在具有更多內容的索引中有所不同。 TFIDFSimilarity documentation詳細描述了評分算法。

如果您願意,您當然可以使用任意數量的相似性實現,或者自己創建一個實現。