Class BaseCompositeReader<R extends IndexReader>

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable
    Direct Known Subclasses:
    DirectoryReader, MultiReader, ParallelCompositeReader

    public abstract class BaseCompositeReader<R extends IndexReader>
    extends CompositeReader
    Base class for implementing CompositeReaders based on an array of sub-readers. The implementing class has to add code for correctly refcounting and closing the sub-readers.

    User code will most likely use MultiReader to build a composite reader on a set of sub-readers (like several DirectoryReaders).

    For efficiency, in this API documents are often referred to via document numbers, non-negative integers which each name a unique document in the index. These document numbers are ephemeral -- they may change as documents are added to and deleted from an index. Clients should thus not rely on a given document having the same number between sessions.

    NOTE: IndexReader instances are completely thread safe, meaning multiple threads can call any of its methods, concurrently. If your application requires external synchronization, you should not synchronize on the IndexReader instance; use your own (non-Lucene) objects instead.

    See Also:
    MultiReader
    • Method Detail

      • getTermVectors

        public final Fields getTermVectors​(int docID)
                                    throws java.io.IOException
        Description copied from class: IndexReader
        Retrieve term vectors for this document, or null if term vectors were not indexed. The returned Fields instance acts like a single-document inverted index (the docID will be 0).
        Specified by:
        getTermVectors in class IndexReader
        Throws:
        java.io.IOException
      • numDocs

        public final int numDocs()
        Description copied from class: IndexReader
        Returns the number of documents in this index.
        Specified by:
        numDocs in class IndexReader
      • maxDoc

        public final int maxDoc()
        Description copied from class: IndexReader
        Returns one greater than the largest possible document number. This may be used to, e.g., determine how big to allocate an array which will have an element for every document number in an index.
        Specified by:
        maxDoc in class IndexReader
      • docFreq

        public final int docFreq​(Term term)
                          throws java.io.IOException
        Description copied from class: IndexReader
        Returns the number of documents containing the term. This method returns 0 if the term or field does not exists. This method does not take into account deleted documents that have not yet been merged away.
        Specified by:
        docFreq in class IndexReader
        Throws:
        java.io.IOException
        See Also:
        TermsEnum.docFreq()
      • totalTermFreq

        public final long totalTermFreq​(Term term)
                                 throws java.io.IOException
        Description copied from class: IndexReader
        Returns the total number of occurrences of term across all documents (the sum of the freq() for each doc that has this term). This will be -1 if the codec doesn't support this measure. Note that, like other term measures, this measure does not take deleted documents into account.
        Specified by:
        totalTermFreq in class IndexReader
        Throws:
        java.io.IOException
      • getSumDocFreq

        public final long getSumDocFreq​(java.lang.String field)
                                 throws java.io.IOException
        Description copied from class: IndexReader
        Returns the sum of TermsEnum.docFreq() for all terms in this field, or -1 if this measure isn't stored by the codec. Note that, just like other term measures, this measure does not take deleted documents into account.
        Specified by:
        getSumDocFreq in class IndexReader
        Throws:
        java.io.IOException
        See Also:
        Terms.getSumDocFreq()
      • getDocCount

        public final int getDocCount​(java.lang.String field)
                              throws java.io.IOException
        Description copied from class: IndexReader
        Returns the number of documents that have at least one term for this field, or -1 if this measure isn't stored by the codec. Note that, just like other term measures, this measure does not take deleted documents into account.
        Specified by:
        getDocCount in class IndexReader
        Throws:
        java.io.IOException
        See Also:
        Terms.getDocCount()
      • getSumTotalTermFreq

        public final long getSumTotalTermFreq​(java.lang.String field)
                                       throws java.io.IOException
        Description copied from class: IndexReader
        Returns the sum of TermsEnum.totalTermFreq() for all terms in this field, or -1 if this measure isn't stored by the codec (or if this fields omits term freq and positions). Note that, just like other term measures, this measure does not take deleted documents into account.
        Specified by:
        getSumTotalTermFreq in class IndexReader
        Throws:
        java.io.IOException
        See Also:
        Terms.getSumTotalTermFreq()