В postgres можете да използвате fuzzystrmatch пакет. Той осигурява levenshtein
функция, която връща разстоянието между два текста, след това можете да извършите размито съвпадение със следния примерен предикат:
where levenshtein(street_address, '123 Main Avex') <= 1
Това ще съответства на всички записи, защото разстоянието между „123 Main Ave“ и „123 Main Avex“ е 1 (1 вмъкване).
Разбира се, стойност 1
тук е само пример и ще изпълни съвпадението доста стриктно (разлика само с един знак). Трябва или да използвате по-голямо число, или, както предлага @IVO GELOV - да използвате относително разстояние (разстояние, разделено на дължина).