W postgresie możesz użyć fuzzystrmatch pakiet. Zapewnia levenshtein
funkcji, która zwraca odległość między dwoma tekstami, możesz następnie przeprowadzić dopasowanie rozmyte za pomocą następującego przykładowego predykatu:
where levenshtein(street_address, '123 Main Avex') <= 1
Spowoduje to dopasowanie wszystkich rekordów, ponieważ odległość między „123 Main Avex” a „123 Main Avex” wynosi 1 (1 wstawienie).
Oczywiście wartość 1
tutaj jest tylko przykład i wykona dopasowanie dość ściśle (różnica tylko o jeden znak). Powinieneś użyć większej liczby lub, co sugeruje @IVO GELOV - użyć względnej odległości (odległość podzielona przez długość).