Class MultiPhraseQuery

  • All Implemented Interfaces:
    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.
    • Constructor Detail

      • MultiPhraseQuery

        public MultiPhraseQuery()
    • Method Detail

      • 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 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​(IndexSearcher 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