feat(search+docs): 搜索升级(trgm 模糊 + 品牌/产地过滤 + 排序)+ 开发者文档 (M5b) #8
Reference in New Issue
Block a user
Delete Branch "devin/1781948300-m5b-search-docs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
M5 第二部分:搜索升级 + 开发者文档(接续已合并的 #7 API Key/限流)。
搜索:把名称搜索从纯
ILIKE子串升级为 trigram 词级模糊(容忍错别字,如choclate→Chocolate、nutela→Nutella),并新增品牌/产地过滤与相关度排序。匹配仍是包容式(子串 OR 模糊 OR 条码),排序按word_similarity(q, name) * (0.5 + quality_score)——相似度主导、质量分做不归零的乘子。无q时按质量分返回。ProductSummary响应新增country_of_origin、quality_score、score(相关度,提供q时为 0–1,否则null)。文档:
GET /api/v1/openapi.json(内嵌 OpenAPI 3 规范,不计入限流,便于工具拉取)。X-API-Key/Bearer、X-RateLimit-*、429/401),并更新搜索端点的参数/返回示例。docs/api.md开发者指南;公开站搜索页加入品牌/产地过滤输入框并展示产地。迁移
0009_search:brand.name加 GIN trgm 索引、product.country_of_origin加 btree 索引(pg_trgm与product.name的 trgm 索引在 0001 已建)。测试
本地 docker postgres+redis:迁移 up/down-all/up 可逆;
go vet/gofmt/go test ./...全过(新增TestSearchFuzzyAndFilters、TestOpenAPISpec,依赖 Redis 的用例无 Redis 时自动 skip)。真实 HTTP 烟测:错别字命中、品牌/产地过滤、openapi.json200 且不带限流头。两个前端npm run build通过。