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 voidadd(Term term)Add a single term at the next position in the phrase.voidadd(Term[] terms)Add multiple terms at the next position in the phrase.voidadd(Term[] terms, int position)Allows to specify the relative position of terms within the phrase.WeightcreateWeight(IndexSearcher searcher)Expert: Constructs an appropriate Weight implementation for this query.booleanequals(java.lang.Object o)Returns true ifois equal to this.voidextractTerms(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.intgetSlop()Sets the phrase slop for this query.java.util.List<Term[]>getTermArrays()Returns a List of the terms in the multiphrase.inthashCode()Returns a hash code value for this object.Queryrewrite(IndexReader reader)Expert: called to re-write queries into primitive queries.voidsetSlop(int s)Sets the phrase slop for this query.java.lang.StringtoString(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:QueryExpert: adds all terms occurring in this query to the terms set. Only works if this query is in itsrewrittenform.- Overrides:
 extractTermsin classQuery
 
- 
rewrite
public Query rewrite(IndexReader reader)
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. 
- 
createWeight
public Weight createWeight(IndexSearcher searcher) throws java.io.IOException
Description copied from class:QueryExpert: Constructs an appropriate Weight implementation for this query.Only implemented by primitive queries, which re-write to themselves.
- Overrides:
 createWeightin 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 ifois equal to this. 
 - 
 
 -