C# lucene.net搜索和;按hit.score c排序搜索结果#

C# lucene.net搜索和;按hit.score c排序搜索结果#,c#,lucene.net,C#,Lucene.net,我正在通过lucene.net查找用于搜索索引数据的代码。我从这个url得到了一个代码 下面是小示例代码 List<SearchResult> list = new List<SearchResult>(); SearchResult sr = null; for (int i = 0; i < results; i++) { sr = new SearchResult(); Document doc = hits.Doc(i); floa

我正在通过lucene.net查找用于搜索索引数据的代码。我从这个url得到了一个代码

下面是小示例代码

List<SearchResult> list = new List<SearchResult>();
SearchResult sr = null;
for (int i = 0; i < results; i++)
{
    sr = new SearchResult();
    Document doc = hits.Doc(i);
    float score = hits.Score(i);
    sr.Id = int.Parse(doc.Get("id"));
    sr.Score = score;
    sr.Description = doc.Get("Description");
    sr.Title = doc.Get("Title");
    sr.Link = doc.Get("Link");
    list.Add(sr);
}
//sort by score
list = list.OrderByDescending(x => x.Score).ToList();

我通过升序搜索,但仍然没有得到我想要的结果……奥迪的数据没有排在顶部。所以,请指导我在我的代码中加入什么,因为这些数据位于顶部,在搜索结果集中出现的次数最多。请指导我,谢谢。

分数是文档与您的查询相关性的指标。分数越高,文档越有可能相关

我很难说为什么jcb文档在不了解更多数据集的情况下比audi文档更为核心。若在文档中关键字的出现率方面,所有其他条件都是相同的,那个么我猜jcb并没有奥迪那个么常见。频率较低的术语权重较高,因为如果您碰巧匹配一个罕见的术语,它们更有可能是您所寻找的

使用两种不同的排序得到相同结果的问题可能是我能想到的两件事。其中一个可能是你的错误。如果所有的结果都有相同的分数,那就有两个


你能检查一下你成绩的分数吗?

lucene的分数很复杂,这里有一个公式链接:默认情况下,成绩按分数排序。
list = list.OrderBy(x => x.Score).ToList();