原 /api/v1/articles?q=xxx 只搜 title + body_text(外文原文), 导致: - 搜中文译文里出现的词搜不到 - 搜双 provider 评论里的"主题词"搜不到 - 搜摘要搜不到 扩展为搜索 7 个字段(命中任一即可): - title (原标题,外文) - body_text (原文,外文) - title_zh (中文标题) - body_zh_text (中文译文,纯文本) - summary_zh (中文摘要) - commentary (Angel 评论) - commentary_meituan (美团评论) 不去搜 body_zh_formatted(HTML 包了 <p class="diary-para">), 避免 ilike 跟 HTML 标签字符串误匹配,纯文本走 body_zh_text 即可。 性能: - ilike '%xxx%' 走不了 B-tree 索引,PG 会 seq scan - 当前文章量级别(几千篇)下完全 OK,延迟 < 50ms - 未来 10w+ 文章量时改 PG full-text search(to_tsvector + GIN) 或外部 ES;现阶段不做 无 schema/migration 改动;无前端改动(后端响应 schema 没变)。
9.5 KiB
9.5 KiB