Expand description
搜索面板(⌘K)的文章建议接口。
与全文搜索不同:只匹配标题、摘要与标签名,最多返回 8 条,按「标题命中 >
摘要命中 > 标签命中」再按发布时间排序。面板逐字查询,所以另配一档宽松限流
(见 rate_limit::check_suggest_limit),结果写入短 TTL 缓存,并随文章写操作失效。
Leptos server function,注册在 /api 路径下。
Structs§
- Path
Recommendations - 404 页「也许你在找」:从地址里拆出的词。
- Recommend
ForPath - Serialized arguments for the
recommend_for_pathserver function. - Suggest
Posts - Serialized arguments for the
suggest_postsserver function.
Constants§
- MAX_
QUERY_ 🔒CHARS - 查询长度上限:超出时视为无效查询,直接返回空。
- PATH_
RECOMMEND_ 🔒LIMIT - 404 推荐最多列出的文章数。
- ROUTE_
WORDS 🔒 - 地址里不代表内容的段:路由前缀与常见文件名。
- SUGGEST_
SQL 🔒 - 文章建议的 SQL:
$1为已转义 LIKE 通配符的查询词。
Functions§
- path_
words 🔒 - 把地址拆成用于匹配的词:按
/ - _ .与空白切分,解码百分号编码, 去掉路由前缀、纯数字与不足两个字符的片段,最多保留 5 个、去重。 - percent_
decode 🔒 - 解码
%XX;不是合法 UTF-8 时退回原文。 - query_
suggestions 🔒 - 执行建议查询(不经缓存与限流),供接口与数据库回归测试共用。
- recommend_
for_ path - 按地址里的词匹配已发布文章的标题与 slug,命中词多的排前,最多 3 篇。 地址里没有可用的词时不查询。公开接口,结果不缓存(只在 404 时调用)。
- suggest_
posts - 搜索面板的文章建议。