Have you looked into the
word distance ,
Soundex, and
Text::Metaphone modules on CPAN? These may give you a better measuring stick to find sound and look alike matches for you search -- then just put them into a hash and sort out the best 20 hits.
-Waswas