org.apache.lucene.search
Class MultiPhraseQuery

java.lang.Object
  extended by org.apache.lucene.search.Query
      extended by org.apache.lucene.search.MultiPhraseQuery
All Implemented Interfaces:
Serializable, Cloneable

public class MultiPhraseQuery
extends Query

MultiPhraseQuery is a generalized version of PhraseQuery, with an added method add(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.

Version:
1.0
See Also:
Serialized Form

Constructor Summary
MultiPhraseQuery()
           
 
Method Summary
 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(Searcher searcher)
          Expert: Constructs an appropriate Weight implementation for this query.
 boolean equals(Object o)
          Returns true if o is equal to this.
 void extractTerms(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.
 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.
 String toString(String f)
          Prints a user-readable version of this query.
 
Methods inherited from class org.apache.lucene.search.Query
clone, combine, getBoost, getSimilarity, mergeBooleanQueries, setBoost, toString, weight
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MultiPhraseQuery

public MultiPhraseQuery()
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.

Parameters:
terms -
position -
See Also:
PhraseQuery.add(Term, int)

getTermArrays

public 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(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 its rewritten form.

Overrides:
extractTerms in class Query

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.

Overrides:
rewrite in class Query

createWeight

public Weight createWeight(Searcher searcher)
                    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 class Query
Throws:
IOException

toString

public final String toString(String f)
Prints a user-readable version of this query.

Specified by:
toString in class Query

equals

public boolean equals(Object o)
Returns true if o is equal to this.

Overrides:
equals in class Query

hashCode

public int hashCode()
Returns a hash code value for this object.

Overrides:
hashCode in class Query