2011-06-27 5 views
2

関連する検索のために特別なenumをluceneに追加しています。特定のenum値を持つ結果をソートする方法。C#でLucene.netの結果をソートする方法は?

私は悪い中等度のベストを追加すると仮定し、私はどのようにLucene.netでこれを行うことができます結果で一番最初に取得する必要があります。

Lucene.netでこれを行う方法はありません。

答えて

8

Luceneは独自のソートを持っています。ネームスペース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); 
関連する問題