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 classAbstract class that defines how the query is rewritten.static final classA rewrite method that first translates each term into a SpanTermQuery in aBooleanClause.Occur.SHOULDclause in a BooleanQuery, and keeps the scores as computed by the query. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Qstatic final SpanMultiTermQueryWrapper.SpanRewriteMethodA rewrite method that first translates each term into a SpanTermQuery in aBooleanClause.Occur.SHOULDclause in a BooleanQuery, and keeps the scores as computed by the query. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleangetField()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 queryinthashCode()rewrite(IndexReader reader) Expert: called to re-write queries into primitive queries.final voidsetRewriteMethod(SpanMultiTermQueryWrapper.SpanRewriteMethod rewriteMethod) Expert: sets the rewrite method.Prints a query to a string, withfieldassumed 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.SHOULDclause 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 throwUnsupportedOperationExceptionon 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:SpanQueryExpert: Returns the matches for this query in an index. Used internally to search for spans.- Specified by:
getSpansin classSpanQuery- Throws:
IOException
-
getField
Description copied from class:SpanQueryReturns 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:QueryPrints a query to a string, withfieldassumed to be the default field and omitted. -
rewrite
Description copied from class:QueryExpert: called to re-write queries into primitive queries. For example, a PrefixQuery will be rewritten into a BooleanQuery that consists of TermQuerys.- Overrides:
rewritein classQuery- Throws:
IOException
-
hashCode
public int hashCode() -
equals
-