Skip to main content

Module suggest

Module suggest 

Source
Expand description

搜索面板(⌘K)的文章建议接口。

与全文搜索不同:只匹配标题、摘要与标签名,最多返回 8 条,按「标题命中 > 摘要命中 > 标签命中」再按发布时间排序。面板逐字查询,所以另配一档宽松限流 (见 rate_limit::check_suggest_limit),结果写入短 TTL 缓存,并随文章写操作失效。 Leptos server function,注册在 /api 路径下。

Structs§

PathRecommendations
404 页「也许你在找」:从地址里拆出的词。
RecommendForPath
Serialized arguments for the recommend_for_path server function.
SuggestPosts
Serialized arguments for the suggest_posts server 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
搜索面板的文章建议。