Class SpanTermQuery


  • public class SpanTermQuery
    extends SpanQuery
    Matches spans containing a term. This should not be used for terms that are indexed at position Integer.MAX_VALUE.
    • Field Detail

      • term

        protected final Term term
      • termStates

        protected final TermStates termStates
      • PHRASE_TO_SPAN_TERM_POSITIONS_COST

        private static final float PHRASE_TO_SPAN_TERM_POSITIONS_COST
        A guess of the relative cost of dealing with the term positions when using a SpanNearQuery instead of a PhraseQuery.
        See Also:
        Constant Field Values
      • TERM_POSNS_SEEK_OPS_PER_DOC

        private static final int TERM_POSNS_SEEK_OPS_PER_DOC
        See Also:
        Constant Field Values
    • Constructor Detail

      • SpanTermQuery

        public SpanTermQuery​(Term term)
        Construct a SpanTermQuery matching the named term's spans.
      • SpanTermQuery

        public SpanTermQuery​(Term term,
                             TermStates termStates)
        Expert: Construct a SpanTermQuery matching the named term's spans, using the provided TermStates
    • Method Detail

      • getTerm

        public Term getTerm()
        Return the term whose spans are matched.
      • getTermStates

        public TermStates getTermStates()
        Returns the TermStates passed to the constructor, or null if it was not passed.
      • getField

        public java.lang.String getField()
        Description copied from class: SpanQuery
        Returns the name of the field matched by this query.
        Specified by:
        getField in class SpanQuery
      • createWeight

        public SpanWeight createWeight​(IndexSearcher searcher,
                                       ScoreMode scoreMode,
                                       float boost)
                                throws java.io.IOException
        Description copied from class: Query
        Expert: Constructs an appropriate Weight implementation for this query.

        Only implemented by primitive queries, which re-write to themselves.

        Specified by:
        createWeight in class SpanQuery
        scoreMode - How the produced scorers will be consumed.
        boost - The boost that is propagated by the parent queries.
        Throws:
        java.io.IOException
      • visit

        public void visit​(QueryVisitor visitor)
        Description copied from class: Query
        Recurse through the query tree, visiting any child queries
        Specified by:
        visit in class Query
        Parameters:
        visitor - a QueryVisitor to be called by each query in the tree
      • termPositionsCost

        static float termPositionsCost​(TermsEnum termsEnum)
                                throws java.io.IOException
        Returns an expected cost in simple operations of processing the occurrences of a term in a document that contains the term.
        Parameters:
        termsEnum - The term is the term at which this TermsEnum is positioned.

        This is a copy of org.apache.lucene.search.PhraseQuery.termPositionsCost().
        TODO: keep only a single copy of this method and the constants used in it when SpanTermQuery moves to the o.a.l.search package.

        Throws:
        java.io.IOException
      • toString

        public java.lang.String toString​(java.lang.String field)
        Description copied from class: Query
        Prints a query to a string, with field assumed to be the default field and omitted.
        Specified by:
        toString in class Query
      • hashCode

        public int hashCode()
        Description copied from class: Query
        Override and implement query hash code properly in a subclass. This is required so that QueryCache works properly.
        Specified by:
        hashCode in class Query
        See Also:
        Query.equals(Object)
      • equals

        public boolean equals​(java.lang.Object other)
        Description copied from class: Query
        Override and implement query instance equivalence properly in a subclass. This is required so that QueryCache works properly.

        Typically a query will be equal to another only if it's an instance of the same class and its document-filtering properties are identical that other instance. Utility methods are provided for certain repetitive code.

        Specified by:
        equals in class Query
        See Also:
        Query.sameClassAs(Object), Query.classHash()