我正在尋找一個Lucene(Java)中的相似性模塊,它給出了一個基於權重的評分。我知道這很模糊,最好用一個例子來解釋。Lucene自定義相似性/評分
Document 1
-----------
Firstname: Francesca
Document 2
-----------
Firstname: Francisco
名字字段是使用Doublemetaphone &精製的Soundex語音算法進行分析。在索引階段。
因此,倒排索引看起來像這樣(後兩項由Doublemetaphone和精緻的探測法分別給予):
francesca ===> Doc1
francisco ===> Doc2
FRNS ===> Doc1, Doc2
F29083030 ===> Doc1
F2908306 ===> Doc2
現在我的搜索查詢是這樣的: 姓:「弗朗西斯」
顯然,對於Doc1,所有4個術語都匹配。對於每場比賽,我想給出一個25%的比例(我事先知道一個給定學期最多隻能有4個擴展學期
按照這個原則,我想給出下面的分數:
Doc1 (100) [Reason: All 4 terms match]
Doc2 (25) [Reason: Only FRNS term matches, rest don't match]
現在,這裏我的問題是,要實現這一點,沒有任何相似性模塊提供了架子。如果不是,我相信我應該延長DefaultSimilarity並覆蓋必要的方法,但哪裏是模塊?稱爲相似度模塊,並總結每個文檔的所有分數?我要問的原因是我會擴展這個基於權重的其他字段的評分,在這種情況下,每個文檔的總分數將是個人加權平均值的總和ual字段。因此,我還應該自定義總結各個字段分數的代碼並重寫它以查找平均值。有人可以展示一些指針嗎?謝謝。
謝謝你。但是我也看到的是我需要重寫的課程來平均個人分數(每場)。 – user1189332
已更新的答案。 –