Class NGramPhraseQuery


  • public class NGramPhraseQuery
    extends Query
    This is a PhraseQuery which is optimized for n-gram phrase query. For example, when you query "ABCD" on a 2-gram field, you may want to use NGramPhraseQuery rather than PhraseQuery, because NGramPhraseQuery will rewrite(IndexReader) the query to "AB/0 CD/2", while PhraseQuery will query "AB/0 BC/1 CD/2" (where term/position).
    • Constructor Summary

      Constructors 
      Constructor Description
      NGramPhraseQuery​(int n, PhraseQuery query)
      Constructor that takes gram size.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object other)
      Override and implement query instance equivalence properly in a subclass.
      private boolean equalsTo​(NGramPhraseQuery other)  
      int getN()
      Return the n in n-gram
      int[] getPositions()
      Return the list of relative positions that each term should appear at.
      Term[] getTerms()
      Return the list of terms.
      int hashCode()
      Override and implement query hash code properly in a subclass.
      Query rewrite​(IndexReader reader)
      Expert: called to re-write queries into primitive queries.
      java.lang.String toString​(java.lang.String field)
      Prints a query to a string, with field assumed to be the default field and omitted.
      void visit​(QueryVisitor visitor)
      Recurse through the query tree, visiting any child queries
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • n

        private final int n
    • Constructor Detail

      • NGramPhraseQuery

        public NGramPhraseQuery​(int n,
                                PhraseQuery query)
        Constructor that takes gram size.
        Parameters:
        n - n-gram size
    • Method Detail

      • rewrite

        public Query rewrite​(IndexReader reader)
                      throws java.io.IOException
        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
        Throws:
        java.io.IOException
      • visit

        public void visit​(QueryVisitor visitor)
        Description copied from class: Query
        Recurse through the query tree, visiting any child queries
        Overrides:
        visit in class Query
        Parameters:
        visitor - a QueryVisitor to be called by each query in the tree
      • equals

        public boolean equals​(java.lang.Object other)
        Description copied from class: Query
        Override and implement query instance equivalence properly in a subclass. This is required so that QueryCache works properly. Typically a query will be equal to another only if it's an instance of the same class and its document-filtering properties are identical that other instance. Utility methods are provided for certain repetitive code.
        Specified by:
        equals in class Query
        See Also:
        Query.sameClassAs(Object), Query.classHash()
      • hashCode

        public int hashCode()
        Description copied from class: Query
        Override and implement query hash code properly in a subclass. This is required so that QueryCache works properly.
        Specified by:
        hashCode in class Query
        See Also:
        Query.equals(Object)
      • getN

        public int getN()
        Return the n in n-gram
      • getTerms

        public Term[] getTerms()
        Return the list of terms.
      • getPositions

        public int[] getPositions()
        Return the list of relative positions that each term should appear at.
      • toString

        public java.lang.String toString​(java.lang.String field)
        Description copied from class: Query
        Prints a query to a string, with field assumed to be the default field and omitted.
        Specified by:
        toString in class Query