Example usage for org.apache.lucene.index LeafReader maxDoc

List of usage examples for org.apache.lucene.index LeafReader maxDoc

Introduction

In this page you can find the example usage for org.apache.lucene.index LeafReader maxDoc.

Prototype

public abstract int maxDoc();

Source Link

Document

Returns one greater than the largest possible document number.

Usage

From source file:uk.co.flax.luwak.presearcher.FieldFilterPresearcherComponent.java

License:Apache License

private Query buildFilterClause(LeafReader reader) throws IOException {

    Terms terms = reader.fields().terms(field);
    if (terms == null)
        return null;

    BooleanQuery.Builder bq = new BooleanQuery.Builder();

    int docsInBatch = reader.maxDoc();

    BytesRef term;/*from w w w  . j  ava2  s .  com*/
    TermsEnum te = terms.iterator();
    while ((term = te.next()) != null) {
        // we need to check that every document in the batch has the same field values, otherwise
        // this filtering will not work
        if (te.docFreq() != docsInBatch)
            throw new IllegalArgumentException("Some documents in this batch do not have a term value of "
                    + field + ":" + Term.toString(term));
        bq.add(new TermQuery(new Term(field, BytesRef.deepCopyOf(term))), BooleanClause.Occur.SHOULD);
    }

    BooleanQuery built = bq.build();

    if (built.clauses().size() == 0)
        return null;

    return built;
}