我正在将特殊的枚举添加到lucene中,用于相关的搜索。如何对具有特定枚举值的结果进行排序。
假设我添加了差的、中等的、最好的,我需要首先在结果中获得最好的,然后我如何在Lucene.net中做到这一点。
有没有办法在Lucene.net中做到这一点?
发布于 2011-06-27 07:03:02
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);
发布于 2011-06-27 08:13:46
您可以使用"SimpleFacetedSearch“将结果分类为差、中等、最佳https://cwiki.apache.org/confluence/display/LUCENENET/Simple+Faceted+Search
https://stackoverflow.com/questions/6489307
复制相似问题