G3.07.1zero-results explanation设计研究

零结果需说明原因而非仅陈述事实

别名: 零结果原因 · empty search explanation · 为何无匹配

概念解释

「找到 0 条」只陈述了一个计数。零结果需说明原因,是把这个计数翻译成用户能用来下一步的因果:是查询词在本集合里没有对上、是某个筛选把集合切空了、是当前范围太窄、还是根本没有权限看见。没有原因,0 会被读成「世界上没有这东西」,下一次动作就会乱——改一个无关的字、或离开。Hearst 把空结果页写成必须解释发生了什么,而不能只报告没有。

原因说明针对已经发生的空集。它不是在勾选前拦住空组合,也不是在应用筛选前预告还有几件。

机制

空集切断了「查询 → 结果 → 改写」的反馈。人用结果来诊断上一枪哪错了;零条时诊断材料只剩计数。计数没有指向:词错、范围错、过滤错、对象不存在,四种可能的修复完全不同。工作记忆会选用代价最低的解释,通常是「没有」,于是停止查找。把原因写成当前约束的清单(查询、已选筛选、范围),等于把诊断重新接上——用户能问「是哪一条约束在负责这 0」。

原因还要能被证伪。写「没有匹配」仍然是计数的同义反复。写「“发票作废”在本库标题和正文中未出现;筛选“今年”已打开」才给出两个可被拿掉的责任人。含糊的安慰(「试试其他关键词」)看起来像原因,其实把生成下一查询的成本还回去了。

怎么研究

测用户把 0 归因到哪一类,以及归因是否与真实原因一致。

  • 范式:同一空集配不同文案(只报 0 / 列出当前约束 / 错误地暗示对象不存在);查询日志中零结果后的下一动作(改词、去筛选、离开)与真实空因对照。Hearst 对 empty results 的界面讨论。
  • 自变量:是否点名负责的约束、是否区分「词未命中」与「过滤切空」、是否把权限不足说成「无结果」。
  • 因变量:归因准确率、错误地认为对象不存在的比例、下一动作是否对准真实原因。
  • 方法论注意点:实验室若任务书保证「目标一定在」,被试不会选「不存在」,归因分布被扭曲。要用有的空是真没有、有的空是过滤造成的混合材料。把「理解原因」和「愿意继续」分开记:有人看懂了仍离开,那是恢复动作的问题。

边界

引擎自己也不知道为什么空(超时、索引损坏)时,不要编一个查询侧的原因;应说系统失败,否则用户会去改一个无辜的词。真的没有该对象时,原因就是没有,不要硬找一条筛选来背锅。多原因叠加(词也偏、筛选也窄)要都列出来,只报其中一条会把修复引到错误的那一刀。原因说明的粒度止于用户能拿掉的约束,不要讲倒排索引或分词器。

怎么落地

  • 零结果页用短句点名当前查询、已应用筛选和范围里,哪几项共同造成了空,而不是只写「无结果」。
  • 「词未命中」和「过滤切空」用不同句子;后者应能让人看见是哪一枚筛选在负责。
  • 权限造成的不可见不要写成「没有匹配」,以免用户以为对象不存在。
  • 验证:制造三种空——错词、过窄筛选、无权。文案若三种一样,原因没有被说明。问未参与设计的人「你接下来会改什么」,改的那一项应与真实空因一致。

延伸

  • 同组G3.07.2 应提供放宽条件的具体动作 · G3.07.3 零结果是引导而非终点
  • 相邻G1.06 分面分类 · T2.05 空状态与零结果的文案 · G3.04 拼写纠错
  • 站内检索zero results · empty search · query reformulation

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/G3.07.1