In Postgres können Sie fuzzystrmatch verwenden Paket. Es liefert ein levenshtein
Funktion, die den Abstand zwischen zwei Texten zurückgibt, können Sie dann einen Fuzzy-Matching mit dem folgenden beispielhaften Prädikat durchführen:
where levenshtein(street_address, '123 Main Avex') <= 1
Dies stimmt mit allen Datensätzen überein, da der Abstand zwischen „123 Main Ave“ und „123 Main Avex“ 1 (1 Einfügung) beträgt.
Natürlich Wert 1
hier ist nur ein Beispiel und wird den Abgleich ziemlich streng durchführen (Unterschied nur um ein Zeichen). Sie sollten entweder eine größere Zahl verwenden oder, was @IVO GELOV vorschlägt, die relative Entfernung verwenden (Entfernung geteilt durch die Länge).