Class CompiledAutomaton

java.lang.Object
org.apache.lucene.util.automaton.CompiledAutomaton
All Implemented Interfaces:
Accountable

public class CompiledAutomaton extends Object implements Accountable
Immutable class holding compiled details for a given Automaton. The Automaton could either be deterministic or non-deterministic, For deterministic automaton, it must not have dead states but is not necessarily minimal. And will be executed using ByteRunAutomaton For non-deterministic automaton, it will be executed using NFARunAutomaton
WARNING: This API is experimental and might change in incompatible ways in the next release.
  • Field Details

  • Constructor Details

    • CompiledAutomaton

      public CompiledAutomaton(Automaton automaton)
      Create this, passing simplify=true, so that we try to simplify the automaton.
    • CompiledAutomaton

      public CompiledAutomaton(Automaton automaton, boolean finite, boolean simplify)
      Create this. If simplify is true, we run possibly expensive operations to determine if the automaton is one the cases in CompiledAutomaton.AUTOMATON_TYPE. Set finite to true if the automaton is finite, otherwise set to false if infinite or you don't know.
    • CompiledAutomaton

      public CompiledAutomaton(Automaton automaton, boolean finite, boolean simplify, boolean isBinary)
      Create this. If simplify is true, we run possibly expensive operations to determine if the automaton is one the cases in CompiledAutomaton.AUTOMATON_TYPE. Set finite to true if the automaton is finite, otherwise set to false if infinite or you don't know.
  • Method Details

    • getTermsEnum

      public TermsEnum getTermsEnum(Terms terms) throws IOException
      Return a TermsEnum intersecting the provided Terms with the terms accepted by this automaton.
      Throws:
      IOException
    • visit

      public void visit(QueryVisitor visitor, Query parent, String field)
      Report back to a QueryVisitor how this automaton matches terms
    • floor

      public BytesRef floor(BytesRef input, BytesRefBuilder output)
      Finds largest term accepted by this Automaton, that's <= the provided input term. The result is placed in output; it's fine for output and input to point to the same bytes. The returned result is either the provided output, or null if there is no floor term (ie, the provided input term is before the first term accepted by this Automaton).
    • getByteRunnable

      public ByteRunnable getByteRunnable()
      Get a ByteRunnable instance, it will be different depending on whether a NFA or DFA is passed in, and does not guarantee returning non-null object
    • getTransitionAccessor

      public TransitionAccessor getTransitionAccessor()
      Get a TransitionAccessor instance, it will be different depending on whether a NFA or DFA is passed in, and does not guarantee returning non-null object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • ramBytesUsed

      public long ramBytesUsed()
      Description copied from interface: Accountable
      Return the memory usage of this object in bytes. Negative values are illegal.
      Specified by:
      ramBytesUsed in interface Accountable