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 Details

    • 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:
    • 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:
    • DEFAULT_NON_FUZZY_PREFIX

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

      public static final int DEFAULT_MAX_EDITS
      The default maximum number of edits for fuzzy suggestions.
      See Also:
    • DEFAULT_TRANSPOSITIONS

      public static final boolean DEFAULT_TRANSPOSITIONS
      The default transposition value passed to LevenshteinAutomata
      See Also:
    • 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
  • Constructor Details

  • Method Details

    • createWeight

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

      private Automaton toLevenshteinAutomata(Automaton automaton, Set<IntsRef> refs)
    • 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 String toString(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