diff --git a/migrations/014_drop_ineffective_trgm_index.sql b/migrations/014_drop_ineffective_trgm_index.sql new file mode 100644 index 0000000..fe477c6 --- /dev/null +++ b/migrations/014_drop_ineffective_trgm_index.sql @@ -0,0 +1,5 @@ +-- 删除对 ILIKE '%...%'(双侧通配符)无效的 trgm GIN 索引(L1)。 +-- pg_trgm 的 GIN 索引只在前缀模式('xxx%')命中,双侧模糊匹配无法利用它, +-- 索引建了等于白建且误导。搜索改由 LIMIT + 限流兜底的全表扫承担; +-- 后续可升级为 tsvector 全文检索(独立大改动)。 +DROP INDEX IF EXISTS idx_posts_search_trgm; diff --git a/src/api/posts/search.rs b/src/api/posts/search.rs index 50ac5aa..b2250b6 100644 --- a/src/api/posts/search.rs +++ b/src/api/posts/search.rs @@ -61,7 +61,9 @@ pub async fn search_posts(query: String) -> Result