views:

517

answers:

2

Does Apaches Solr search engine provide approximate string matches, e.g. via Levenshtein algorithm?

I'm looking for a way to find customers by last name. But I cannot guarantee the correctness of the names. How can I configure SOLR so that it would find the person "Levenshtein" even if I search for "Levenstein" ?

+1  A: 

Typically this is done with the SpellCheckComponent, which internally uses the Lucene SpellChecker by default, which implements Levenshtein.

The wiki really explains very well how it works, how to configure it and what options are available, no point repeating it here.

Or you could just use Lucene's fuzzy search operator.

Another option is using a phonetic filter instead of Levenshtein.

Mauricio Scheffer
A: 

Great answer by Mauricio, my only "cheapo" addition is to just append the ~ character to all terms that you want to fuzzy match on the way in to solr. If you are using the default set up, this will give you fuzzy match.

MattMcKnight