Class SpanPositionCheckQuery

  • All Implemented Interfaces:
    java.lang.Cloneable
    Direct Known Subclasses:
    SpanPositionRangeQuery

    public abstract class SpanPositionCheckQuery
    extends SpanQuery
    implements java.lang.Cloneable
    Base class for filtering a SpanQuery based on the position of a match.
    • Constructor Detail

      • SpanPositionCheckQuery

        public SpanPositionCheckQuery​(SpanQuery match)
    • Method Detail

      • getMatch

        public SpanQuery getMatch()
        Returns:
        the SpanQuery whose matches are filtered.
      • 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
      • acceptPosition

        protected abstract FilterSpans.AcceptStatus acceptPosition​(Spans spans)
                                                            throws java.io.IOException
        Implementing classes are required to return whether the current position is a match for the passed in "match" SpanQuery.

        This is only called if the underlying last Spans.nextStartPosition() for the match indicated a valid start position.

        Parameters:
        spans - The Spans instance, positioned at the spot to check
        Returns:
        whether the match is accepted, rejected, or rejected and should move to the next doc.
        Throws:
        java.io.IOException
        See Also:
        DocIdSetIterator.nextDoc()
      • 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
      • rewrite

        public Query rewrite​(IndexSearcher indexSearcher)
                      throws java.io.IOException
        Description copied from class: Query
        Expert: called to re-write queries into primitive queries. For example, a PrefixQuery will be rewritten into a BooleanQuery that consists of TermQuerys.

        Callers are expected to call rewrite multiple times if necessary, until the rewritten query is the same as the original query.

        The rewrite process may be able to make use of IndexSearcher's executor and be executed in parallel if the executor is provided.

        However, if any of the intermediary queries do not satisfy the new API, parallel rewrite is not possible for any subsequent sub-queries. To take advantage of this API, the entire query tree must override this method.

        Overrides:
        rewrite in class Query
        Throws:
        java.io.IOException
        See Also:
        IndexSearcher.rewrite(Query)
      • 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
      • 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)