yggdrasil/migrations/003_search_trgm.sql
Sonetto 959d813630 feat: pg_trgm full-text search for posts (#2)
* feat(db): add pg_trgm search index on posts

* feat(api): use pg_trgm similarity search for posts

* fix(api): use ILIKE + word_similarity instead of % operator for search
2026-06-08 18:26:35 +08:00

12 lines
353 B
SQL

CREATE EXTENSION IF NOT EXISTS pg_trgm;
ALTER TABLE posts ADD COLUMN IF NOT EXISTS search_text TEXT
GENERATED ALWAYS AS (
COALESCE(title, '') || ' ' ||
COALESCE(summary, '') || ' ' ||
COALESCE(content_md, '')
) STORED;
CREATE INDEX IF NOT EXISTS idx_posts_search_trgm
ON posts USING GIN (search_text gin_trgm_ops);