Automata Invasion
Michael McCandless
Robert Muir
Lucene Revolution
May 9, 2012
Agenda
Who we are
Who we are
Agenda
Finite State Automata (FSA)
Finite State Transducer (FST)
Agenda
Lucene's FSA Implementation
Lucene's FST Implementation
Lucene's FST Implementation
Downside: Generics Policeman does not approve!
Lucene's TokenStreams are FSAs!
Lucene's TokenStreams are FSAs!
Agenda
AutomatonQuery
How to implement algorithm from 67-page paper
Hands-On
FuzzyQuery
http://s.apache.org/FuzzyQuery
DirectSpellChecker
"I'm confident that in three weeks, I'll be done."
JapaneseTokenizer (Kuromoji)
Query Suggesters
WFSTSuggester example
wacky|1
waffle|4
wealthy|3
weather|10
weaver|7
"I don't think this will work but I can't provide a counterexample right now"
SynonymFilter
BlockTree Terms Dictionary
BlockTree Terms Dictionary
BlockTree Example
able
above
apple
perfect
preface
prefecture
prefix
previous
profit
programmer
project
zoo
BlockTree Example
a*
perfect
preface
prefecture
prefix
previous
profit
programmer
project
zoo
ble
bove
pple
BlockTree Example
a*
p*
zoo
ble
bove
pple
erfect
reface
refecture
refix
revious
rofit
rogrammer
roject
BlockTree Example
a*
p*
zoo
ble
bove
pple
erfect
re*
ro*
face
fecture
fix
vious
fit
grammer
ject
BlockTree Example
a*
p*
zoo
ble
bove
pple
erfect
re*
ro*
face
fecture
fix
vious
fit
grammer
ject
MemoryPostingsFormat
MemoryPostingsFormat
Future FSA/T Usages
Conclusions
More Information