给站内搜索加了语义检索,记录下流程备忘,也给大家参考。
老搜索是纯关键词,搜"怎么部署"匹配不到标题写"上线流程"的文章。加 embedding 之后,把每篇文章向量化存进 pgvector,搜索时把 query 也向量化,按余弦相似度排序。
SELECT id, title, content <=> :query_vec AS distance
FROM articles
ORDER BY distance
LIMIT 10;
pgvector + 一行 SQL 就搞定,召回比关键词好太多。大家站内搜索都怎么做?