Example usage for org.apache.lucene.util DocIdSetBuilder add

List of usage examples for org.apache.lucene.util DocIdSetBuilder add

Introduction

In this page you can find the example usage for org.apache.lucene.util DocIdSetBuilder add.

Prototype

public void add(DocIdSetIterator iter) throws IOException 

Source Link

Document

Add the content of the provided DocIdSetIterator to this builder.

Usage

From source file:org.codelibs.elasticsearch.search.slice.TermsSliceQuery.java

License:Apache License

/**
 * Returns a DocIdSet per segments containing the matching docs for the specified slice.
 *//*from   w w  w  .j  a  v a 2  s.  c o m*/
private DocIdSet build(LeafReader reader) throws IOException {
    final DocIdSetBuilder builder = new DocIdSetBuilder(reader.maxDoc());
    final Terms terms = reader.terms(getField());
    final TermsEnum te = terms.iterator();
    PostingsEnum docsEnum = null;
    for (BytesRef term = te.next(); term != null; term = te.next()) {
        int hashCode = term.hashCode();
        if (contains(hashCode)) {
            docsEnum = te.postings(docsEnum, PostingsEnum.NONE);
            builder.add(docsEnum);
        }
    }
    return builder.build();
}

From source file:solutions.siren.join.index.query.TermsEnumTermsQuery.java

License:Open Source License

public DocIdSet getDocIdSet(LeafReaderContext context) throws IOException {
    final Terms terms = context.reader().terms(field);
    // make sure the field exists
    if (terms == null)
        return null;

    final BytesRefTermsSet termsSet = this.getTermsSet();
    // make sure there are terms to filter on
    if (termsSet == null || termsSet.isEmpty())
        return null;

    SeekingTermSetTermsEnum termsEnum = new SeekingTermSetTermsEnum(terms.iterator(), termsSet);

    DocIdSetBuilder builder = new DocIdSetBuilder(context.reader().maxDoc());
    PostingsEnum docs = null;//w w w .  jav a  2  s.  com
    while (termsEnum.next() != null) {
        docs = termsEnum.postings(docs, PostingsEnum.NONE);
        builder.add(docs);
    }

    return builder.build();
}