Class FuzzyCompletionQuery


  • public class FuzzyCompletionQuery
    extends PrefixCompletionQuery
    A CompletionQuery that match documents containing terms within an edit distance of the specified prefix.

    This query boost documents relative to how similar the indexed terms are to the provided prefix.

    Example usage of querying an analyzed prefix within an edit distance of 1 of 'subg' against a field 'suggest_field' is as follows:

      CompletionQuery query = new FuzzyCompletionQuery(analyzer, new Term("suggest_field", "subg"));
     
    • Field Detail

      • DEFAULT_UNICODE_AWARE

        public static final boolean DEFAULT_UNICODE_AWARE
        Measure maxEdits, minFuzzyLength, transpositions and nonFuzzyPrefix parameters in Unicode code points (actual letters) instead of bytes.
        See Also:
        Constant Field Values
      • DEFAULT_MIN_FUZZY_LENGTH

        public static final int DEFAULT_MIN_FUZZY_LENGTH
        The default minimum length of the key before any edits are allowed.
        See Also:
        Constant Field Values
      • DEFAULT_NON_FUZZY_PREFIX

        public static final int DEFAULT_NON_FUZZY_PREFIX
        The default prefix length where edits are not allowed.
        See Also:
        Constant Field Values
      • DEFAULT_MAX_EDITS

        public static final int DEFAULT_MAX_EDITS
        The default maximum number of edits for fuzzy suggestions.
        See Also:
        Constant Field Values
      • maxEdits

        private final int maxEdits
      • transpositions

        private final boolean transpositions
      • nonFuzzyPrefix

        private final int nonFuzzyPrefix
      • minFuzzyLength

        private final int minFuzzyLength
      • unicodeAware

        private final boolean unicodeAware
      • determinizeWorkLimit

        private final int determinizeWorkLimit
    • Method Detail

      • createWeight

        public Weight createWeight​(IndexSearcher searcher,
                                   ScoreMode scoreMode,
                                   float boost)
                            throws java.io.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 PrefixCompletionQuery
        scoreMode - How the produced scorers will be consumed.
        boost - The boost that is propagated by the parent queries.
        Throws:
        java.io.IOException
      • getMaxEdits

        public int getMaxEdits()
        Get the maximum edit distance for fuzzy matches
      • isTranspositions

        public boolean isTranspositions()
        Return whether transpositions count as a single edit
      • getNonFuzzyPrefix

        public int getNonFuzzyPrefix()
        Get the length of a prefix where no edits are permitted
      • getMinFuzzyLength

        public int getMinFuzzyLength()
        Get the minimum length of a term considered for matching
      • isUnicodeAware

        public boolean isUnicodeAware()
        Return true if lengths are measured in unicode code-points rather than bytes
      • getDeterminizeWorkLimit

        public int getDeterminizeWorkLimit()
        Get the maximum effort to use determinizing
      • 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.
        Overrides:
        toString in class CompletionQuery