List of usage examples for org.apache.lucene.search CollectorManager CollectorManager
CollectorManager
From source file:com.lucene.MyIndexSearcher.java
License:Apache License
public MyTopDocs searchAfter(Query query, int numHits) throws IOException { final int limit = Math.max(1, reader.maxDoc()); numHits = Math.min(numHits, limit); final int cappedNumHits = Math.min(numHits, limit); final CollectorManager<MyTopScoreDocCollector, MyTopDocs> manager = new CollectorManager<MyTopScoreDocCollector, MyTopDocs>() { @Override//from www .ja v a 2 s .c o m public MyTopScoreDocCollector newCollector() throws IOException { MyTopScoreDocCollector collector = MyTopScoreDocCollector.create(cappedNumHits); return collector; } @Override public MyTopDocs reduce(Collection<MyTopScoreDocCollector> collectors) throws IOException { final MyTopDocs[] topDocs = new MyTopDocs[collectors.size()]; int i = 0; for (MyTopScoreDocCollector collector : collectors) { topDocs[i++] = collector.topDocs1(); } MyTopDocs top = MyTopDocs.merge1(0, cappedNumHits, topDocs, true); return top; } }; MyTopDocs result = search(query, manager); return result; }