Package org.apache.lucene.search
Class MultiPhraseQuery
- java.lang.Object
-
- org.apache.lucene.search.Query
-
- org.apache.lucene.search.MultiPhraseQuery
-
- All Implemented Interfaces:
java.lang.Cloneable
public class MultiPhraseQuery extends Query
MultiPhraseQuery is a generalized version of PhraseQuery, with an added methodadd(Term[])
. To use this class, to search for the phrase "Microsoft app*" first use add(Term) on the term "Microsoft", then find all terms that have "app" as prefix using IndexReader.terms(Term), and use MultiPhraseQuery.add(Term[] terms) to add them to the query.
-
-
Constructor Summary
Constructors Constructor Description MultiPhraseQuery()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(Term term)
Add a single term at the next position in the phrase.void
add(Term[] terms)
Add multiple terms at the next position in the phrase.void
add(Term[] terms, int position)
Allows to specify the relative position of terms within the phrase.Weight
createWeight(IndexSearcher searcher)
Expert: Constructs an appropriate Weight implementation for this query.boolean
equals(java.lang.Object o)
Returns true ifo
is equal to this.void
extractTerms(java.util.Set<Term> terms)
Expert: adds all terms occurring in this query to the terms set.int[]
getPositions()
Returns the relative positions of terms in this phrase.int
getSlop()
Sets the phrase slop for this query.java.util.List<Term[]>
getTermArrays()
Returns a List of the terms in the multiphrase.int
hashCode()
Returns a hash code value for this object.Query
rewrite(IndexReader reader)
Expert: called to re-write queries into primitive queries.void
setSlop(int s)
Sets the phrase slop for this query.java.lang.String
toString(java.lang.String f)
Prints a user-readable version of this query.
-
-
-
Method Detail
-
setSlop
public void setSlop(int s)
Sets the phrase slop for this query.- See Also:
PhraseQuery.setSlop(int)
-
getSlop
public int getSlop()
Sets the phrase slop for this query.- See Also:
PhraseQuery.getSlop()
-
add
public void add(Term term)
Add a single term at the next position in the phrase.- See Also:
PhraseQuery.add(Term)
-
add
public void add(Term[] terms)
Add multiple terms at the next position in the phrase. Any of the terms may match.- See Also:
PhraseQuery.add(Term)
-
add
public void add(Term[] terms, int position)
Allows to specify the relative position of terms within the phrase.- See Also:
PhraseQuery.add(Term, int)
-
getTermArrays
public java.util.List<Term[]> getTermArrays()
Returns a List of the terms in the multiphrase. Do not modify the List or its contents.
-
getPositions
public int[] getPositions()
Returns the relative positions of terms in this phrase.
-
extractTerms
public void extractTerms(java.util.Set<Term> terms)
Description copied from class:Query
Expert: adds all terms occurring in this query to the terms set. Only works if this query is in itsrewritten
form.- Overrides:
extractTerms
in classQuery
-
rewrite
public Query rewrite(IndexReader reader)
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.
-
createWeight
public Weight createWeight(IndexSearcher searcher) 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.
- Overrides:
createWeight
in classQuery
- Throws:
java.io.IOException
-
toString
public final java.lang.String toString(java.lang.String f)
Prints a user-readable version of this query.
-
equals
public boolean equals(java.lang.Object o)
Returns true ifo
is equal to this.
-
-