I have a ~300.000 row table; which includes technical terms; queried using PHP and MySQL + FULLTEXT indexes. But when I searching a wrong typed term; for example “hyperpext”; naturally giving no results.
I need to “compansate” little writing errors and getting nearest record from database. How I can accomplish such feaure? I know about Levenshtein distance, Soundex and Metaphone algorithms but currently not having a solid idea to implement this to querying against database.
Thanks
See this article for how you might implement Levenshtein distance in a MySQL stored function.
For posterity, the author’s suggestion is to do this:
He also supplies a LEVENSHTEIN_RATIO helper method which will evaluate the ratio of different/total characters, rather than a straight edit distance. For instance, if it’s 60%, then three-fifths of the characters in the source word are different from the destination word.