Полнотекстовый поиск в Postgres из Go.

Ответ

Типы tsvector и tsquery, функции to_tsvector, to_tsquery, plainto_tsquery; оператор @@. GIN-индекс по tsvector ускоряет поиск. В Go формируют запрос с условием: WHERE to_tsvector('russian', body) @@ plainto_tsquery('russian', $1), передают строку поиска. Конфигурация языка задает стемминг и стоп-слова.

rows, err := db.QueryContext(ctx,
    "SELECT * FROM articles WHERE to_tsvector('russian', body) @@ plainto_tsquery('russian', $1)", query)
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.