Package org.apache.lucene.search
Class MultiPhraseQuery
java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.search.MultiPhraseQuery
A generalized version of
PhraseQuery
, with the possibility of adding more than one term
at the same position that are treated as a disjunction (OR). To use this class to search for the
phrase "Microsoft app*" first create a Builder and use MultiPhraseQuery.Builder.add(Term)
on the term
"microsoft" (assuming lowercase analysis), then find all terms that have "app" as prefix using
LeafReader.terms(String)
, seeking to "app" then iterating and collecting terms until
there is no longer that prefix, and finally use MultiPhraseQuery.Builder.add(Term[])
to add them. MultiPhraseQuery.Builder.build()
returns the fully constructed (and immutable) MultiPhraseQuery.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
A builder for multi-phrase queries(package private) static class
static class
Slower version of UnionPostingsEnum that delegates offsets and positions, for use by MatchesIteratorstatic class
Takes the logical union of multiple PostingsEnum iterators. -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
MultiPhraseQuery
(String field, Term[][] termArrays, int[] positions, int slop) -
Method Summary
Modifier and TypeMethodDescriptioncreateWeight
(IndexSearcher searcher, ScoreMode scoreMode, float boost) Expert: Constructs an appropriate Weight implementation for this query.boolean
Returns true ifo
is equal to this.private boolean
equalsTo
(MultiPhraseQuery other) int[]
Returns the relative positions of terms in this phrase.int
getSlop()
Sets the phrase slop for this query.Term[][]
Returns the arrays of arrays of terms in the multi-phrase.int
hashCode()
Returns a hash code value for this object.rewrite
(IndexReader reader) Expert: called to re-write queries into primitive queries.private boolean
termArraysEquals
(Term[][] termArrays1, Term[][] termArrays2) private int
final String
Prints a user-readable version of this query.void
visit
(QueryVisitor visitor) Recurse through the query tree, visiting any child queriesMethods inherited from class org.apache.lucene.search.Query
classHash, sameClassAs, toString
-
Field Details
-
field
-
termArrays
-
positions
private final int[] positions -
slop
private final int slop
-
-
Constructor Details
-
MultiPhraseQuery
-
-
Method Details
-
getSlop
public int getSlop()Sets the phrase slop for this query.- See Also:
-
getTermArrays
Returns the arrays of arrays of terms in the multi-phrase. Do not modify! -
getPositions
public int[] getPositions()Returns the relative positions of terms in this phrase. Do not modify! -
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.Callers are expected to call
rewrite
multiple times if necessary, until the rewritten query is the same as the original query.- Overrides:
rewrite
in classQuery
- Throws:
IOException
- See Also:
-
visit
Description copied from class:Query
Recurse through the query tree, visiting any child queries -
createWeight
public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws 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.
- Overrides:
createWeight
in classQuery
scoreMode
- How the produced scorers will be consumed.boost
- The boost that is propagated by the parent queries.- Throws:
IOException
-
toString
Prints a user-readable version of this query. -
equals
Returns true ifo
is equal to this. -
equalsTo
-
hashCode
public int hashCode()Returns a hash code value for this object. -
termArraysHashCode
private int termArraysHashCode() -
termArraysEquals
-