With a FuzzyQuery, for example, you iterate over Term in index, and
looking for the nearest one. PrefixQuery or regular expression work in
a similar way.
If you say, fuzzy querying will never gives a word with different size
of 1 (size+1 or size -1), you can restrict the list of candidates, and
ngram index can help you more.
Some token filter destroy the word. Stemmer for example. If you wont
to search wide, stemmer can help you, but can't use PrefixQuery with
stemmed word. So, you can stemme word in a lexicon and use it as a
synonym. You index "dog" and look for "doggy", "dogs" and "dog".
Lexicon can use static list of word, from hunspell index or wikipedia
parsing, or words extracted from your index.
for the word "Lucene" :