Class MultiTerms


  • public final class MultiTerms
    extends Terms
    Exposes flex API, merged from flex API of sub-segments.
    • Field Detail

      • subs

        private final Terms[] subs
      • hasFreqs

        private final boolean hasFreqs
      • hasOffsets

        private final boolean hasOffsets
      • hasPositions

        private final boolean hasPositions
      • hasPayloads

        private final boolean hasPayloads
    • Constructor Detail

      • MultiTerms

        public MultiTerms​(Terms[] subs,
                          ReaderSlice[] subSlices)
                   throws java.io.IOException
        Sole constructor. Use getTerms(IndexReader, String) instead if possible.
        Parameters:
        subs - The Terms instances of all sub-readers.
        subSlices - A parallel array (matching subs) describing the sub-reader slices.
        Throws:
        java.io.IOException
    • Method Detail

      • getTerms

        public static Terms getTerms​(IndexReader r,
                                     java.lang.String field)
                              throws java.io.IOException
        This method may return null if the field does not exist or if it has no terms.
        Throws:
        java.io.IOException
      • getTermPostingsEnum

        public static PostingsEnum getTermPostingsEnum​(IndexReader r,
                                                       java.lang.String field,
                                                       BytesRef term,
                                                       int flags)
                                                throws java.io.IOException
        Returns PostingsEnum for the specified field and term, with control over whether freqs, positions, offsets or payloads are required. Some codecs may be able to optimize their implementation when offsets and/or payloads are not required. This will return null if the field or term does not exist. See TermsEnum.postings(PostingsEnum,int).
        Throws:
        java.io.IOException
      • getSubTerms

        public Terms[] getSubTerms()
        Expert: returns the Terms being merged.
      • getSubSlices

        public ReaderSlice[] getSubSlices()
        Expert: returns pointers to the sub-readers corresponding to the Terms being merged.
      • intersect

        public TermsEnum intersect​(CompiledAutomaton compiled,
                                   BytesRef startTerm)
                            throws java.io.IOException
        Description copied from class: Terms
        Returns a TermsEnum that iterates over all terms and documents that are accepted by the provided CompiledAutomaton. If the startTerm is provided then the returned enum will only return terms > startTerm, but you still must call next() first to get to the first term. Note that the provided startTerm must be accepted by the automaton.

        This is an expert low-level API and will only work for NORMAL compiled automata. To handle any compiled automata you should instead use CompiledAutomaton.getTermsEnum(org.apache.lucene.index.Terms) instead.

        NOTE: the returned TermsEnum cannot seek.

        Overrides:
        intersect in class Terms
        Throws:
        java.io.IOException
      • getMin

        public BytesRef getMin()
                        throws java.io.IOException
        Description copied from class: Terms
        Returns the smallest term (in lexicographic order) in the field. Note that, just like other term measures, this measure does not take deleted documents into account. This returns null when there are no terms.
        Overrides:
        getMin in class Terms
        Throws:
        java.io.IOException
      • getMax

        public BytesRef getMax()
                        throws java.io.IOException
        Description copied from class: Terms
        Returns the largest term (in lexicographic order) in the field. Note that, just like other term measures, this measure does not take deleted documents into account. This returns null when there are no terms.
        Overrides:
        getMax in class Terms
        Throws:
        java.io.IOException
      • iterator

        public TermsEnum iterator()
                           throws java.io.IOException
        Description copied from class: Terms
        Returns an iterator that will step through all terms. This method will not return null.
        Specified by:
        iterator in class Terms
        Throws:
        java.io.IOException
      • size

        public long size()
        Description copied from class: Terms
        Returns the number of terms 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:
        size in class Terms
      • getSumTotalTermFreq

        public long getSumTotalTermFreq()
                                 throws java.io.IOException
        Description copied from class: Terms
        Returns the sum of TermsEnum.totalTermFreq() for all terms in this field. Note that, just like other term measures, this measure does not take deleted documents into account.
        Specified by:
        getSumTotalTermFreq in class Terms
        Throws:
        java.io.IOException
      • getSumDocFreq

        public long getSumDocFreq()
                           throws java.io.IOException
        Description copied from class: Terms
        Returns the sum of TermsEnum.docFreq() for all terms in this field. Note that, just like other term measures, this measure does not take deleted documents into account.
        Specified by:
        getSumDocFreq in class Terms
        Throws:
        java.io.IOException
      • getDocCount

        public int getDocCount()
                        throws java.io.IOException
        Description copied from class: Terms
        Returns the number of documents that have at least one term for this field. Note that, just like other term measures, this measure does not take deleted documents into account.
        Specified by:
        getDocCount in class Terms
        Throws:
        java.io.IOException
      • hasFreqs

        public boolean hasFreqs()
        Description copied from class: Terms
        Returns true if documents in this field store per-document term frequency (PostingsEnum.freq()).
        Specified by:
        hasFreqs in class Terms
      • hasOffsets

        public boolean hasOffsets()
        Description copied from class: Terms
        Returns true if documents in this field store offsets.
        Specified by:
        hasOffsets in class Terms
      • hasPositions

        public boolean hasPositions()
        Description copied from class: Terms
        Returns true if documents in this field store positions.
        Specified by:
        hasPositions in class Terms
      • hasPayloads

        public boolean hasPayloads()
        Description copied from class: Terms
        Returns true if documents in this field store payloads.
        Specified by:
        hasPayloads in class Terms