## org.apache.lucene.search
Class MultiPhraseQuery

    java.lang.Object
      org.apache.lucene.search.Query
          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`