2012-07-07 116 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种不同类别得到相同结果的问题可能是我能想到的两件事。其中一个就是你的错误。如果所有的结果都有相同的分数,那么两个会是。

你能检查你的结果的分数吗?