Search in sources :

Example 46 with DocIdSetIterator

use of org.apache.lucene.search.DocIdSetIterator in project neo4j by neo4j.

the class LucenePartitionAllDocumentsReader method iterateAllDocs.

private DocIdSetIterator iterateAllDocs() {
    Bits liveDocs = MultiFields.getLiveDocs(reader);
    DocIdSetIterator allDocs = DocIdSetIterator.all(reader.maxDoc());
    if (liveDocs == null) {
        return allDocs;
    }
    return new FilteredDocIdSetIterator(allDocs) {

        @Override
        protected boolean match(int doc) {
            return liveDocs.get(doc);
        }
    };
}
Also used : FilteredDocIdSetIterator(org.apache.lucene.search.FilteredDocIdSetIterator) Bits(org.apache.lucene.util.Bits) FilteredDocIdSetIterator(org.apache.lucene.search.FilteredDocIdSetIterator) DocIdSetIterator(org.apache.lucene.search.DocIdSetIterator)

Example 47 with DocIdSetIterator

use of org.apache.lucene.search.DocIdSetIterator in project neo4j by neo4j.

the class DocValuesCollector method replayTo.

private void replayTo(Collector collector) throws IOException {
    for (MatchingDocs docs : getMatchingDocs()) {
        LeafCollector leafCollector = collector.getLeafCollector(docs.context);
        Scorer scorer;
        DocIdSetIterator idIterator = docs.docIdSet.iterator();
        if (isKeepScores()) {
            scorer = new ReplayingScorer(docs.scores);
        } else {
            scorer = new ConstantScoreScorer(null, Float.NaN, idIterator);
        }
        leafCollector.setScorer(scorer);
        int doc;
        while ((doc = idIterator.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
            leafCollector.collect(doc);
        }
    }
}
Also used : LeafCollector(org.apache.lucene.search.LeafCollector) ConstantScoreScorer(org.apache.lucene.search.ConstantScoreScorer) ConstantScoreScorer(org.apache.lucene.search.ConstantScoreScorer) Scorer(org.apache.lucene.search.Scorer) DocIdSetIterator(org.apache.lucene.search.DocIdSetIterator)

Example 48 with DocIdSetIterator

use of org.apache.lucene.search.DocIdSetIterator in project neo4j by neo4j.

the class DocValuesCollectorTest method shouldCollectOneMatchingDocsPerSegment.

@Test
public void shouldCollectOneMatchingDocsPerSegment() throws Exception {
    // given
    DocValuesCollector collector = new DocValuesCollector();
    IndexReaderStub readerStub = indexReaderWithMaxDocs(42);
    // when
    collector.doSetNextReader(readerStub.getContext());
    collector.collect(1);
    collector.collect(3);
    collector.doSetNextReader(readerStub.getContext());
    collector.collect(5);
    collector.collect(9);
    // then
    assertEquals(4, collector.getTotalHits());
    List<DocValuesCollector.MatchingDocs> allMatchingDocs = collector.getMatchingDocs();
    assertEquals(2, allMatchingDocs.size());
    DocValuesCollector.MatchingDocs matchingDocs = allMatchingDocs.get(0);
    assertSame(readerStub.getContext(), matchingDocs.context);
    assertEquals(2, matchingDocs.totalHits);
    DocIdSetIterator idIterator = matchingDocs.docIdSet.iterator();
    assertEquals(1, idIterator.nextDoc());
    assertEquals(3, idIterator.nextDoc());
    assertEquals(DocIdSetIterator.NO_MORE_DOCS, idIterator.nextDoc());
    matchingDocs = allMatchingDocs.get(1);
    assertSame(readerStub.getContext(), matchingDocs.context);
    assertEquals(2, matchingDocs.totalHits);
    idIterator = matchingDocs.docIdSet.iterator();
    assertEquals(5, idIterator.nextDoc());
    assertEquals(9, idIterator.nextDoc());
    assertEquals(DocIdSetIterator.NO_MORE_DOCS, idIterator.nextDoc());
}
Also used : IndexReaderStub(org.neo4j.kernel.api.impl.index.IndexReaderStub) DocIdSetIterator(org.apache.lucene.search.DocIdSetIterator) Test(org.junit.Test)

Example 49 with DocIdSetIterator

use of org.apache.lucene.search.DocIdSetIterator in project neo4j by neo4j.

the class DocValuesCollectorTest method shouldCollectAllHitsPerSegment.

@Test
public void shouldCollectAllHitsPerSegment() throws Exception {
    // given
    DocValuesCollector collector = new DocValuesCollector();
    IndexReaderStub readerStub = indexReaderWithMaxDocs(42);
    // when
    collector.doSetNextReader(readerStub.getContext());
    collector.collect(1);
    collector.collect(3);
    collector.collect(5);
    collector.collect(9);
    // then
    assertEquals(4, collector.getTotalHits());
    List<DocValuesCollector.MatchingDocs> allMatchingDocs = collector.getMatchingDocs();
    assertEquals(1, allMatchingDocs.size());
    DocValuesCollector.MatchingDocs matchingDocs = allMatchingDocs.get(0);
    assertSame(readerStub.getContext(), matchingDocs.context);
    assertEquals(4, matchingDocs.totalHits);
    DocIdSetIterator idIterator = matchingDocs.docIdSet.iterator();
    assertEquals(1, idIterator.nextDoc());
    assertEquals(3, idIterator.nextDoc());
    assertEquals(5, idIterator.nextDoc());
    assertEquals(9, idIterator.nextDoc());
    assertEquals(DocIdSetIterator.NO_MORE_DOCS, idIterator.nextDoc());
}
Also used : IndexReaderStub(org.neo4j.kernel.api.impl.index.IndexReaderStub) DocIdSetIterator(org.apache.lucene.search.DocIdSetIterator) Test(org.junit.Test)

Example 50 with DocIdSetIterator

use of org.apache.lucene.search.DocIdSetIterator in project greplin-lucene-utils by Cue.

the class FixedBitSets method asList.

/**
   * Converts a fixed bit set to a list.
   * @param bitSet the bit set to convert.
   * @return the list of matching document ids.
   */
public static List<Integer> asList(final FixedBitSet bitSet) {
    DocIdSetIterator it = bitSet.iterator();
    List<Integer> ints = Lists.newArrayList();
    try {
        while (it.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
            ints.add(it.docID());
        }
    } catch (IOException e) {
        throw new RuntimeException("Impossible IOException when iterating in memory");
    }
    return ints;
}
Also used : IOException(java.io.IOException) DocIdSetIterator(org.apache.lucene.search.DocIdSetIterator)

Aggregations

DocIdSetIterator (org.apache.lucene.search.DocIdSetIterator)68 LeafReaderContext (org.apache.lucene.index.LeafReaderContext)28 Scorer (org.apache.lucene.search.Scorer)15 DocIdSet (org.apache.lucene.search.DocIdSet)14 Weight (org.apache.lucene.search.Weight)12 ConstantScoreScorer (org.apache.lucene.search.ConstantScoreScorer)10 BitSet (org.apache.lucene.util.BitSet)10 Bits (org.apache.lucene.util.Bits)10 BytesRef (org.apache.lucene.util.BytesRef)10 IOException (java.io.IOException)9 MatchingDocs (org.apache.lucene.facet.FacetsCollector.MatchingDocs)8 IndexSearcher (org.apache.lucene.search.IndexSearcher)8 SortedDocValues (org.apache.lucene.index.SortedDocValues)7 ConstantScoreWeight (org.apache.lucene.search.ConstantScoreWeight)7 TwoPhaseIterator (org.apache.lucene.search.TwoPhaseIterator)7 SortedSetDocValues (org.apache.lucene.index.SortedSetDocValues)6 Query (org.apache.lucene.search.Query)6 Document (org.apache.lucene.document.Document)5 IndexReader (org.apache.lucene.index.IndexReader)5 LeafReader (org.apache.lucene.index.LeafReader)5