磁力链接的构成与检索逻辑拆解
磁力链接的字段构成与校验
磁力链接以 magnet:?xt=urn:btih: 作为固定前缀,后半段是一串 40 位十六进制或 32 位 Base32 的特征码,特征码由文件内容经哈希运算得出,因此同一条链接在任何设备上指向同一份数据。链接后可以追加 dn 字段标注显示名称,追加 tr 字段列出 tracker 地址,这些参数决定了客户端连接节点的效率,但不改变内容本身。检索平台在解析时,先把特征码与显示名称拆开,再校验长度与字符集是否合法,非法链接在入库前就被拦下,合法链接按特征码去重,避免同一份数据被重复提交多次。对使用者来说,需要核对的只有特征码本身是否正确,其余参数并不影响检索结果。
特征码匹配与条目排序原理
特征码匹配属于精确查找,只要哈希一致就能定位到同一条记录,因此平台在此之外还提供名称模糊匹配:把显示名称分词后建立倒排索引,用户输入的部分关键词会被拆分到不同词条上。排序环节则综合两个维度,一是匹配度,二是热度值。匹配度看关键词在标题中的位置与覆盖比例,热度值由近七日的查看与复制行为加权累加。两类信号同时参与计算时,匹配度通常作为主排序键,热度只在匹配度接近时用于区分先后,这样既不会让冷门条目长期沉底,也不会让热门记录始终占据首位。
链接状态判定与失效处理
链接状态判定通常有两种思路,一种由后台任务定时发起请求,向 tracker 询问当前可连接的节点数量,返回零则标记为超时;另一种依赖用户侧反馈,把连续多次报错的条目送入复核队列。平台把两者结合,先用定时任务做全量扫描,再把用户反馈作为补充信号。失效条目不会被立即删除,而是转入历史状态,页面仍可查看目录与提交时间,方便用户在别处寻找同名文件。状态每小时刷新一次,复核通过的条目会重新回到默认列表,整套流程只调整状态字段,不改动记录本身。