课程 287 / 365
79%
数据结构与算法直觉·练习·18 分钟
正文已完成

给课程目录写一份查找与排序契约

把搜索归一化、匹配范围、排序键和空结果交付成可测试规则。

L287

目录体验由一串细小决定组成。搜索是否忽略大小写,匹配哪些字段,多个结果如何排序,空关键词和无结果怎样处理,都要写进可测试的契约。

这一课的结果

能为一个目录类界面完成可实现、可验收的搜索排序设计。

核心概念

先把关键判断说清楚

01

归一化先于匹配

大小写、首尾空格和全半角差异应在搜索前统一,否则视觉相同的输入可能得到不同结果。

02

匹配范围要可解释

标题、摘要、标签和正文的权重不同;用户需要知道为什么某条结果被找到。

03

排序必须有最终兜底键

相关度或状态相同后再按稳定 ID 排序,才能保证相同输入返回相同顺序。

案例拆解

“Agent”课程搜索结果固定下来

课程目录同时匹配标题、摘要和篇章名,但没有权重与兜底键,部署后结果顺序经常变化。

  1. 01

    关键词转小写并去除首尾空格,空关键词返回当前筛选下全部课程。

  2. 02

    标题命中排在摘要命中之前,摘要命中排在篇章名命中之前。

  3. 03

    同等级结果按课程编号升序,无结果时保留筛选条件并给出清除入口。

案例结果

搜索结果可复现,用户也能理解匹配与排序逻辑。

提交前练习

现在轮到你

为一个至少包含两个筛选条件的目录写查找与排序契约。

内容会自动保存在当前设备
查看参考答案与评分标准

参考答案

输入去空格并转小写;标题精确命中>标题包含>标签包含>摘要包含;同级按更新时间降序再按 ID 升序;空关键词显示全部,无结果保留关键词并提供清除按钮。

评分标准

  • 归一化规则可实现
  • 匹配和排序层级完整
  • 两类空状态不混淆

本课收口 · 学习证据

完成,不等于随手打一个勾。

确认阅读、保存练习,再用 30 秒检查和一句话总结留下真实学习证据。

0 / 3
02完成本课练习0 / 4 项必填内容已填写
03通过理解检查约 30 秒
为什么结果排序需要一个稳定的最终兜底键?
你现在更接近哪一种状态?
完成上面三项后,才能把本课记为已验证。

资料来源

继续核对与延伸阅读

本课内容最近更新于