Комментарии 5
Чем не подошёл модуль fuzzystrmatch для полнотекстового поиска? Он лишён тех минусов, о которых вы упоминали в статье
fuzzystrmatch интересный модуль, но это не полноценный FTS, а реализует только некоторый функционал, который полезен только для отдельных узких кейсво. К примеру, из доки
Система Soundex позволяет вычислить похожие по звучанию имена, приводя их к одинаковым кодам. Изначально она использовалась для обработки данных переписи населения США в 1880, 1900 и 1910 г
у вас был опыт использование этого модуля? как отрабатывает? опечатки и прочее
Работает по алгоритму левенштейна, проблем и неудобных юзкейсов не испытывал.
Есть одна особенность. У него левенштейн по подстроке, т.е.
Если в базе
"ООО Рога и Копыта"
И
"ООО Рыг"
И мы ищем по "ООО Рог", то найдёт первую строку, и покажет 100% совпадение.
Т.е. оно магически находит наиболее похожую подстроку, и показывает левенштейн по ней.
ну вот это как раз ключевой момент, потому что pg_trgm для данного примера выдаст оба варианта с разным similarity_ratio и с этим можно будет работать. отсортировать и пользователь сможет выбрать нужное.
но в любом случае выглядит интересно, надо будет попробовать fuzzystrmatch тоже, спасибо за наводку
Полнотекстовый поиск в PostgreSQL с SQLAlchemy