@Override public TopScoreDocCollector newCollector() throws IOException { return TopScoreDocCollector.create(cappedNumHits, after); }
/** * Creates a new {@link TopScoreDocCollector} given the number of hits to * collect and whether documents are scored in order by the input * {@link Scorer} to {@link LeafCollector#setScorer(Scorer)}. * * <p><b>NOTE</b>: The instances returned by this method * pre-allocate a full array of length * <code>numHits</code>, and fill the array with sentinel * objects. */ public static TopScoreDocCollector create(int numHits) { return create(numHits, null); }
/** * Search one index. This is used if no projects are set up. * @param paging whether to use paging (if yes, first X pages will load * faster) * @param root which db to search * @throws IOException */ private void searchSingleDatabase(File root, boolean paging) throws IOException { IndexReader ireader = DirectoryReader.open(FSDirectory.open(root.toPath())); searcher = new IndexSearcher(ireader); collector = TopScoreDocCollector.create(hitsPerPage * cachePages); searcher.search(query, collector); totalHits = collector.getTotalHits(); if (!paging && totalHits > 0) { collector = TopScoreDocCollector.create(totalHits); searcher.search(query, collector); } hits = collector.topDocs().scoreDocs; for (ScoreDoc hit : hits) { int docId = hit.doc; Document d = searcher.doc(docId); docs.add(d); } }
getMultiReader(projects, searcherList); searcher = new IndexSearcher(searchables); collector = TopScoreDocCollector.create(hitsPerPage * cachePages); searcher.search(query, collector); totalHits = collector.getTotalHits(); if (!paging && totalHits > 0) { collector = TopScoreDocCollector.create(totalHits); searcher.search(query, collector);
private TopDocs getTopDocs( Sort sort, int size ) throws IOException { TopDocs topDocs; if ( sort == Sort.RELEVANCE ) { TopScoreDocCollector collector = TopScoreDocCollector.create( size ); replayTo( collector ); topDocs = collector.topDocs(); } else { TopFieldCollector collector = TopFieldCollector.create( sort, size, false, true, false ); replayTo( collector ); topDocs = collector.topDocs(); } return topDocs; }
collector = TopScoreDocCollector.create(totalHits); try { searcher.search(query, collector);
TopScoreDocCollector collector = TopScoreDocCollector.create(10, true); searcher.search(query, collector); ScoreDoc[] docs = collector.topDocs().scoreDocs;
protected TopDocsCollector<? extends ScoreDoc> createTopDocsCollector(int size) throws IOException { return TopScoreDocCollector.create(size); }
public String generateRSS(Path indexFile) throws CorruptIndexException, IOException { StringBuffer output = new StringBuffer(); output.append(getRSSHeaders()); IndexSearcher searcher = null; try { reader = DirectoryReader.open(FSDirectory.open(indexFile)); searcher = new IndexSearcher(reader); GregorianCalendar gc = new java.util.GregorianCalendar(TimeZone.getDefault(), Locale.getDefault()); gc.setTime(new Date()); String nowDateTime = ISO8601.format(gc); gc.add(java.util.GregorianCalendar.MINUTE, -5); String fiveMinsAgo = ISO8601.format(gc); TermRangeQuery query = new TermRangeQuery( TikaCoreProperties.CREATED.getName(), new BytesRef(fiveMinsAgo), new BytesRef(nowDateTime), true, true); TopScoreDocCollector collector = TopScoreDocCollector.create(20); searcher.search(query, collector); ScoreDoc[] hits = collector.topDocs().scoreDocs; for (int i = 0; i < hits.length; i++) { Document doc = searcher.doc(hits[i].doc); output.append(getRSSItem(doc)); } } finally { if (reader != null) reader.close(); } output.append(getRSSFooters()); return output.toString(); }
private TopDocs getTopDocs( Sort sort, int size ) throws IOException { TopDocs topDocs; if ( sort == Sort.RELEVANCE ) { TopScoreDocCollector collector = TopScoreDocCollector.create( size ); replayTo( collector ); topDocs = collector.topDocs(); } else { TopFieldCollector collector = TopFieldCollector.create( sort, size, false, true, false ); replayTo( collector ); topDocs = collector.topDocs(); } return topDocs; }
@Override public void reset() { tdc = TopScoreDocCollector.create(size, outOfOrder); topDocs = null; } }
public CountLimitedHitCollector(int maxSize, boolean outOfOrder, boolean shouldScore) { this.maxSize = maxSize; this.outOfOrder = outOfOrder; this.shouldScore = shouldScore; count = 0; tdc = TopScoreDocCollector.create(maxSize, outOfOrder); }
this.sortAndFormats = sortAndFormats; if (sortAndFormats == null) { final TopDocsCollector<?> topDocsCollector = TopScoreDocCollector.create(numHits, searchAfter); this.collector = topDocsCollector; this.topDocsSupplier = topDocsCollector::topDocs;
private TopScoreDocCollector search(Query query, int lucHits) { TopScoreDocCollector collector = TopScoreDocCollector.create(lucHits, true); try { searcher.search(query, collector); } catch (IOException e) { e.printStackTrace(); } return collector; }
topDocsCollector = TopScoreDocCollector.create(topN); } else {
private int doSearch(String searchPhrase, int maxNumberOfHits, Version luceneVersion) throws NullPointerException, ParseException, IOException { LOG.trace("*** Search Phrase: {} ***", searchPhrase); QueryParser parser = new QueryParser("contents", analyzer); Query query = parser.parse(searchPhrase); TopScoreDocCollector collector = TopScoreDocCollector.create(maxNumberOfHits); indexSearcher.search(query, collector); hits = collector.topDocs().scoreDocs; LOG.trace("*** Search generated {} hits ***", hits.length); return hits.length; } }
public IntervalLimitedCollector(int maxTime, boolean outOfOrder, boolean shouldScore) { this.maxTime = maxTime; this.outOfOrder = outOfOrder; this.shouldScore = shouldScore; tdc = TopScoreDocCollector.create(1000, outOfOrder); thc = new TimeLimitingCollector(tdc, TimeLimitingCollector.getGlobalCounter(), maxTime); }
private TopDocsCollector buildTopDocCollector(final Sort sort, final int numHits, final boolean bNeedScore) throws IOException { if (numHits == 0) return null; final TopDocsCollector topDocsCollector; if (sort != null) topDocsCollector = TopFieldCollector.create(sort, numHits, true, bNeedScore, bNeedScore); else topDocsCollector = TopScoreDocCollector.create(numHits); return add(topDocsCollector); }
TopDocsReducer(Sort withinGroupSort, int maxDocsPerGroup, boolean getScores, boolean getMaxScores, boolean fillSortFields) { this.needsScores = getScores || getMaxScores || withinGroupSort.needsScores(); this.supplier = withinGroupSort == Sort.RELEVANCE ? () -> TopScoreDocCollector.create(maxDocsPerGroup) : () -> TopFieldCollector.create(withinGroupSort, maxDocsPerGroup, fillSortFields, getScores, getMaxScores, true); // TODO: disable exact counts? }
topDocsCollector = TopFieldCollector.create(sort().sort, topN, true, trackScores(), trackScores(), true); } else { topDocsCollector = TopScoreDocCollector.create(topN);