package org.xbib.elasticsearch.skywalker.collectors; import org.apache.lucene.index.AtomicReaderContext; import org.apache.lucene.search.Scorer; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class AllHitsCollector extends AccessibleHitCollector { private List<AllHit> hits = new ArrayList(); public AllHitsCollector(boolean outOfOrder, boolean shouldScore) { this.outOfOrder = outOfOrder; this.shouldScore = shouldScore; } @Override public void collect(int doc) { float score = 1.0f; if (shouldScore) { try { score = scorer.score(); } catch (IOException e) { } } hits.add(new AllHit(docBase + doc, score)); } @Override public int getTotalHits() { return hits.size(); } @Override public int getDocId(int i) { return hits.get(i).docId(); } @Override public float getScore(int i) { return hits.get(i).score(); } @Override public boolean acceptsDocsOutOfOrder() { return outOfOrder; } @Override public void setNextReader(AtomicReaderContext context) throws IOException { this.docBase = context.docBase; } @Override public void setScorer(Scorer scorer) throws IOException { this.scorer = scorer; } @Override public void reset() { hits.clear(); } }