Как реализовать поиск?

Middle
568 просмотров
AFK Offer AI

Зависит от масштаба. Для простого поиска по имени — WHERE name ILIKE '%query%' в PostgreSQL. Это работает на маленьких таблицах, но медленно на больших, потому что не использует индекс. Следующий шаг — trigram индекс (pg_trgm расширение): CREATE INDEX idx_name_trgm ON users USING gin(name gin_trgm_ops). Для полнотекстового поиска — to_tsvector и to_tsquery с GIN-индексом. Для серьёзного поиска с ранжированием, фасетами, подсветкой — Elasticsearch или Meilisearch. В Go запросы к поисковому движку делаешь через HTTP-клиент.

Следующий вопрос

Как работает TRUNCATE vs DELETE?