Package org.apache.lucene.search.spans
Class SpanMultiTermQueryWrapper<Q extends MultiTermQuery>
java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.search.spans.SpanQuery
org.apache.lucene.search.spans.SpanMultiTermQueryWrapper<Q>
- All Implemented Interfaces:
Cloneable
Wraps any
MultiTermQuery
as a SpanQuery
,
so it can be nested within other SpanQuery classes.
The query is rewritten by default to a SpanOrQuery
containing
the expanded terms, but this can be customized.
Example:
WildcardQuery wildcard = new WildcardQuery(new Term("field", "bro?n")); SpanQuery spanWildcard = new SpanMultiTermQueryWrapper<WildcardQuery>(wildcard); // do something with spanWildcard, such as use it in a SpanFirstQuery
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Abstract class that defines how the query is rewritten.static final class
A rewrite method that first translates each term into a SpanTermQuery in aBooleanClause.Occur.SHOULD
clause in a BooleanQuery, and keeps the scores as computed by the query. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Q
static final SpanMultiTermQueryWrapper.SpanRewriteMethod
A rewrite method that first translates each term into a SpanTermQuery in aBooleanClause.Occur.SHOULD
clause in a BooleanQuery, and keeps the scores as computed by the query. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
getField()
Returns the name of the field matched by this query.Expert: returns the rewriteMethodgetSpans
(AtomicReaderContext context, Bits acceptDocs, Map<Term, TermContext> termContexts) Expert: Returns the matches for this query in an index.Returns the wrapped queryint
hashCode()
rewrite
(IndexReader reader) Expert: called to re-write queries into primitive queries.final void
setRewriteMethod
(SpanMultiTermQueryWrapper.SpanRewriteMethod rewriteMethod) Expert: sets the rewrite method.Prints a query to a string, withfield
assumed to be the default field and omitted.Methods inherited from class org.apache.lucene.search.spans.SpanQuery
createWeight
-
Field Details
-
query
-
SCORING_SPAN_QUERY_REWRITE
A rewrite method that first translates each term into a SpanTermQuery in aBooleanClause.Occur.SHOULD
clause in a BooleanQuery, and keeps the scores as computed by the query.
-
-
Constructor Details
-
SpanMultiTermQueryWrapper
Create a new SpanMultiTermQueryWrapper.- Parameters:
query
- Query to wrap.NOTE: This will call
MultiTermQuery.setRewriteMethod(MultiTermQuery.RewriteMethod)
on the wrappedquery
, changing its rewrite method to a suitable one for spans. Be sure to not change the rewrite method on the wrapped query afterwards! Doing so will throwUnsupportedOperationException
on rewriting this query!
-
-
Method Details
-
getRewriteMethod
Expert: returns the rewriteMethod -
setRewriteMethod
Expert: sets the rewrite method. This only makes sense to be a span rewrite method. -
getSpans
public Spans getSpans(AtomicReaderContext context, Bits acceptDocs, Map<Term, TermContext> termContexts) throws IOExceptionDescription copied from class:SpanQuery
Expert: Returns the matches for this query in an index. Used internally to search for spans.- Specified by:
getSpans
in classSpanQuery
- Throws:
IOException
-
getField
Description copied from class:SpanQuery
Returns the name of the field matched by this query.Note that this may return null if the query matches no terms.
-
getWrappedQuery
Returns the wrapped query -
toString
Description copied from class:Query
Prints a query to a string, withfield
assumed to be the default field and omitted. -
rewrite
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.- Overrides:
rewrite
in classQuery
- Throws:
IOException
-
hashCode
public int hashCode() -
equals
-