Per this discussion, here's a patch to implement both levenshtein() and
Bruce Momjian <bruce@momjian.us>
Per this discussion, here's a patch to implement both levenshtein() and metaphone() in a contrib. There seem to be a fair number of different approaches to both of these algorithms. I used the simplest case for levenshtein which has a cost of 1 for any character insertion, deletion, or substitution. For metaphone, I adapted the same code from CPAN that the PHP folks did. A couple of questions: 1. Does it make sense to fold the soundex contrib together with this one? 2. I was debating trying to add multibyte support to levenshtein (it would make no sense at all for metaphone), but a quick search through the contrib directory found no hits on the word MULTIBYTE. Should worry about adding multibyte support to levenshtein()? Joe Conway
Files
| Path | Change | +/− |
|---|---|---|
| contrib/fuzzystrmatch/fuzzystrmatch.c | added | +631 −0 |
| contrib/fuzzystrmatch/fuzzystrmatch.h | added | +161 −0 |
| contrib/fuzzystrmatch/fuzzystrmatch.sql.in | added | +5 −0 |
| contrib/fuzzystrmatch/Makefile | added | +41 −0 |
| contrib/fuzzystrmatch/README.fuzzystrmatch | added | +121 −0 |
| contrib/README | modified | +4 −0 |