如何在C#中对Lucene.net中的结果进行排序?

Ani*_*pta 2 c# lucene.net

我正在为lucene添加特殊枚举以用于相关搜索.我如何对具有特定枚举值的结果进行排序.

假设我添加了差劲适中的最佳,我需要在结果中获得最佳,然后我将如何在Lucene.net中做到这一点.

任何在Lucene.net上这样做的方法

Jas*_*ong 8

Lucene确实拥有自己的Sort.查看命名空间Lucene.Net.Search.Sort.下面是我按DateOfMessage排序的示例.

Lucene.Net.Search.TopDocsCollector collector = Lucene.Net.Search.TopScoreDocCollector.create(InternalMaxSearchResults, false); // default is relevance
var sortBy = new Lucene.Net.Search.Sort(new Lucene.Net.Search.SortField(SearchIndex.IndexFields.DateOfMessage.ToString(), Lucene.Net.Search.SortField.LONG, true));
collector = Lucene.Net.Search.TopFieldCollector.create(
    sortBy,
    InternalMaxSearchResults,   /* max 500 results */
    false,
    false,
    false,
    false);
    break;

// search with the collector
searcher.Search(queryMain, collector);
Run Code Online (Sandbox Code Playgroud)