PostgreSQL FTS: когда поиск не тормозит, а летает
В WikiMind докрутили полнотекстовый поиск на PostgreSQL: tsvector + tsquery и GIN-индексы. Без отдельного search-движка — быстро, просто и без зоопарка сервисов.

В WikiMind мы докрутили полнотекстовый поиск на PostgreSQL: tsvector + tsquery и GIN-индексы. Да, без отдельного search-движка — в эпоху хайпа вокруг AI-поиска иногда хочется просто, быстро и без зоопарка сервисов
Что сделали:
— быстрый поиск по заголовкам от 2 символов с debounce 300ms, чтобы UI не устраивал DDoS базе;
— глубокий поиск по содержимому с контекстными сниппетами — чтобы не открывать документ наугад;
— поиск не только по документам, но и по коллекциям и пользователям: имя, фамилия, отчество, email, телефон.
Отдельно заморочились с безопасностью: поисковые строки экранируем, чтобы не словить SQL-инъекции в tsquery. Потому что “это же просто поиск” — классическая фраза перед инцидентом
Итог: релевантно, быстро и без боли для продакшена.