自己动手写分布式搜索引擎
上QQ阅读APP看书,第一时间看更新

2.5 有限状态机

可以用有限状态机实现模糊查询。例如,查找编辑距离相似的单词。

org.apache.lucene.util.automaton包含有限状态机的实现。BasicAutomata.makeChar()方法生成接收单个字符的自动机。

        Automaton a = BasicAutomata.makeChar('W'); //创建一个字符W组成的自动机

如果从同一个状态接收同样的输入后可以任意到达多个不同的状态,这样的有限状态机叫作非确定有限状态机。如果从一个状态接收一个输入后只能到达某一个状态,这样的有限状态机叫作确定有限状态机。上面的有限状态机a是一个确定的有限状态机。

可以用BasicOperations.run方法测试自动机是否能够接收输入字符串。

        System.out.println(BasicOperations.run(a, "W")); //输出true