Java Lucene 4-带排序的分面搜索

Java Lucene 4-带排序的分面搜索,java,sorting,lucene,faceted-search,Java,Sorting,Lucene,Faceted Search,我正在尝试从lucene 2.4升级到4.4。我曾在2.4中使用bobo browse进行刻面 我使用下面的代码(来自Lucene示例)查询文档并获取facet List<FacetRequest> categories = new ArrayList<FacetRequest>(); categories.add(new CountFacetRequest(new CategoryPath("CATEGORY_PATH", '/'), 10)); FacetSearch

我正在尝试从lucene 2.4升级到4.4。我曾在2.4中使用bobo browse进行刻面

我使用下面的代码(来自Lucene示例)查询文档并获取facet

List<FacetRequest> categories = new ArrayList<FacetRequest>();
categories.add(new CountFacetRequest(new CategoryPath("CATEGORY_PATH", '/'), 10));
FacetSearchParams searchParams = new FacetSearchParams(categories);    
TopScoreDocCollector topScoreDocCollector = TopScoreDocCollector.create(200, true);
FacetsCollector facetsCollector = FacetsCollector.create(searchParams, indexReader, taxonomyReader);
indexSearcher.search(new MatchAllDocsQuery(), MultiCollector.wrap(topScoreDocCollector, facetsCollector));

现在,我如何实现排序和刻面,因为IndexSearcher中没有包含收集器和排序的方法。

找到了答案。这就是为什么。searcher.search(查询,多采集器.wrap(tfc,fc));基本上IndexSearcher.search(…,Sort)在内部创建TopFieldCollector,因此您需要在外部创建它,并使用MultiCollector包装这两个收集器。您可以添加注释作为答案并接受自己的答案吗?它将帮助游客。
Sort sort = new Sort(new SortField("NAME", Type.STRING));    
TopFieldDocs docs = indexSearcher.search(new MatchAllDocsQuery(), 100, sort);