Как стать автором
Обновить

Комментарии 5

Чем не подошёл модуль fuzzystrmatch для полнотекстового поиска? Он лишён тех минусов, о которых вы упоминали в статье

fuzzystrmatch интересный модуль, но это не полноценный FTS, а реализует только некоторый функционал, который полезен только для отдельных узких кейсво. К примеру, из доки

Система Soundex позволяет вычислить похожие по звучанию имена, приводя их к одинаковым кодам. Изначально она использовалась для обработки данных переписи населения США в 1880, 1900 и 1910 г

у вас был опыт использование этого модуля? как отрабатывает? опечатки и прочее

Работает по алгоритму левенштейна, проблем и неудобных юзкейсов не испытывал.

Есть одна особенность. У него левенштейн по подстроке, т.е.

Если в базе
"ООО Рога и Копыта"
И
"ООО Рыг"

И мы ищем по "ООО Рог", то найдёт первую строку, и покажет 100% совпадение.

Т.е. оно магически находит наиболее похожую подстроку, и показывает левенштейн по ней.

ну вот это как раз ключевой момент, потому что pg_trgm для данного примера выдаст оба варианта с разным similarity_ratio и с этим можно будет работать. отсортировать и пользователь сможет выбрать нужное.

но в любом случае выглядит интересно, надо будет попробовать fuzzystrmatch тоже, спасибо за наводку

Нене, выдаст оба, при прочих равных. Просто % будет выше у первой строки.
Т.е., согласно доке, будет 0 у первой строки, и 1 у второй.

P.S. Я не про soundex, а про levenshtein.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий