2012-07-07 106 views
1

我正在查找代碼以通過lucene.net搜索索引數據。我從這個網址獲得了一個代碼 http://www.eggheadcafe.com/tutorials/csharp/c69ef65f-e3c6-409e-ab97-168897c74f83/lucenenet-indexing-searching-entry-level-tutorial.aspxlucene.net search&order搜索結果hit.score c#

這裏是小示例代碼。

​​

有一點我不清楚什麼是hit.score? 爲什麼結果集按排序方式排序hit.score降序?

我通過上面的代碼搜索索引,代碼正在工作。我輸入「audi jcb」進行搜索,我看到六個搜索數據來爲audi和一個數據來jcb但jcb數據來頂部....我只是不明白爲什麼。我想要顯示那些數據將在最高的搜索結果。因爲這是更改代碼有點像

list = list.OrderBy(x => x.Score).ToList(); 

我的上升,但仍然沒有得到我想要的方式....奧迪的數據不是在頂部到來的結果進行搜索。因此,引導我在代碼中包含哪些內容,以便那些在搜索結果集中最高出現的數據。請指導我謝謝。

+0

lucene的分數很複雜,繼承了公式的鏈接:http://lucene.apache.org/core/old_versioned_docs/versions/2_9_4/api/all/org/apache/lucene/search/Similarity.html – 2012-07-09 17:34:58

+0

結果默認按照得分排序。 – 2012-07-09 19:17:09

回答

0

評分是文檔與您的查詢相關性的指標。分數越高,文檔越有可能相關。

我很難說爲什麼jcb文檔在不知道更多關於您的數據集的情況下超越了audi文檔。如果在文檔中出現關鍵字的情況下,所有其他內容都是相同的,那麼我猜測jcb不像audi那麼常見。頻率較低的術語的權重較高,因爲如果您碰巧遇到罕見術語,它們更可能是您正在尋找的內容。

使用2種不同類別得到相同結果的問題可能是我能想到的兩件事。其中一個就是你的錯誤。如果所有的結果都有相同的分數,那麼兩個會是。

你能檢查你的結果的分數嗎?