Package org.apache.lucene.util.automaton

# Class LevenshteinAutomata

java.lang.Object
org.apache.lucene.util.automaton.LevenshteinAutomata

public class LevenshteinAutomata extends Object
Class to construct DFAs that match a word within some edit distance.

Implements the algorithm described in: Schulz and Mihov: Fast String Correction with Levenshtein Automata

WARNING: This API is experimental and might change in incompatible ways in the next release.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `MAXIMUM_SUPPORTED_DISTANCE`
  Maximum edit distance this class can generate an automaton for.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LevenshteinAutomata(int[] word, int alphaMax, boolean withTranspositions)`
  Expert: specify a custom maximum possible symbol (alphaMax); default is Character.MAX_CODE_POINT.
  `LevenshteinAutomata(String input, boolean withTranspositions)`
  Create a new LevenshteinAutomata for some input String.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Automaton`
  `toAutomaton(int n)`
  Compute a DFA that accepts all strings within an edit distance of `n`.
  `Automaton`
  `toAutomaton(int n, String prefix)`
  Compute a DFA that accepts all strings within an edit distance of `n`, matching the specified exact prefix.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### MAXIMUM_SUPPORTED_DISTANCE

    public static final int MAXIMUM_SUPPORTED_DISTANCE
    Maximum edit distance this class can generate an automaton for.
    See Also:
      - Constant Field Values
    NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Constructor Details

  - ### LevenshteinAutomata

    public LevenshteinAutomata(String input, boolean withTranspositions)
    Create a new LevenshteinAutomata for some input String. Optionally count transpositions as a primitive edit.

  - ### LevenshteinAutomata

    public LevenshteinAutomata(int[] word, int alphaMax, boolean withTranspositions)
    Expert: specify a custom maximum possible symbol (alphaMax); default is Character.MAX_CODE_POINT.

- ## Method Details

  - ### toAutomaton

    public Automaton toAutomaton(int n)
    Compute a DFA that accepts all strings within an edit distance of `n`.

    All automata have the following properties:

    - They are deterministic (DFA).
    - There are no transitions to dead states.
    - They are not minimal (some transitions could be combined).

  - ### toAutomaton

    public Automaton toAutomaton(int n, String prefix)
    Compute a DFA that accepts all strings within an edit distance of `n`, matching the specified exact prefix.

    All automata have the following properties:

    - They are deterministic (DFA).
    - There are no transitions to dead states.
    - They are not minimal (some transitions could be combined).