我想要使用Lucene獲得基於Jaccard的分數。 我已經成功地獲得每個文檔的條款數量,我只需要找到每個文檔中找到的查詢條款數。 雖然搜索的Lucene的Javadoc我碰到在嘗試計算Lucene中的Jaccard係數時得到混合結果
score.freq()
這種方法根據的Javadoc
返回當前文檔匹配的數量。這返回一個 浮點數(不是int),因爲SloppyPhraseScorer會根據匹配如何「馬虎」來折扣其頻率 。
我有一個非常簡單的文檔,我創建一個具有以下
貓貓貓狗鳥蛇測試它
當我查詢:貓狗
我得到了score.freq()等於2(這是預期的)
當我查詢:貓
我得到一個score.freq()等於3
任何人都知道爲什麼發生這種情況? 也用更大的查詢來測試它,並且我得到正確的結果。此外,當我的查詢語句狗(其中有1在文檔頻率) 我score.freq的(預期結果)等於1
預先感謝任何答案!