G1.05.2missing metadata breaks advanced search设计研究

元数据缺失时高级检索失效

别名: 元数据缺失 · advanced search failure · 字段空洞

概念解释

按作者、日期范围、状态、文件类型去收窄,依赖的是字段里真有值。字段空着,高级检索的条件是在对空集做运算:界面还在,结果却是全无或乱收。元数据缺失则高级检索失效,不是搜索引擎坏了,是查询写在了不存在的数据上。全文检索还能从标题和正文里碰运气;字段检索没有「碰运气」这一档。

把高级检索入口做得很完整,却不保证对应字段被填过,是在展示一种系统并不拥有的能力。

机制

字段查询是精确匹配或范围匹配。空值既不等于「未知」、也不等于「任意」,多数实现会把空值排除在「作者 = 张三」之外,也可能把空值错误地放进「作者不为张三」。无论哪一种,用户都无法从结果反推「到底有没有这份东西」。缺失还呈系统性:某类内容从来没被要求填日期,于是所有按日期的高级检索对那一类静默失效,看起来像「最近没有」,其实是「最近不可知」。

全文检索的召回能掩盖一部分缺失,所以只测关键词搜索会得出「检索是好的」的假象。一旦任务指定字段条件,假象破裂。

怎么研究

把「字段填充率」当作检索质量的前置变量,而不是事后解释。

  • 范式:构造已知目标的字段查询(作者、日期、状态),在填充完整与故意挖空的语料上对比;再分析真实库的空值分布与查询失败的对应。
  • 自变量:目标字段的空值率、空值是结构化「未知」还是真的没存、界面是否暴露「仅含已填写」的范围。
  • 因变量:已知项能否被字段查询找回、假阴性里有多少是空值造成、用户把失败归因于「没有」还是「搜错」。
  • 方法论注意点:实验室语料往往字段齐全,会高估高级检索。要从生产库抽空值样本。不要用全文检索的成功率替字段检索辩护。

边界

关键词搜索、拼音首字母、拼写容错都不走字段,缺元数据时它们仍可工作,不能据此宣称高级检索也工作。自动抽取(从正文猜日期、猜作者)能降低空值,但抽错比空着更危险,因为结果看起来很确定。权限过滤造成的「对你不可见」不是元数据缺失,应与空值分开计量,否则会把授权问题当成编目问题。

怎么落地

  • 每个高级检索条件上线前,先报对应字段的非空率。低于可用阈值就不要放出这个条件,或明确写「仅对已填写日期的条目有效」。
  • 空值要有结构化表示,并在结果里可被解释(「日期未知」),禁止把空值悄悄当成很久以前或刚刚。
  • 对空值率高的类型,优先补字段或收回该条件,而不是把高级检索面板做得更长。
  • 验证:挑十条字段为空的已知目标,用高级检索按用户会用的条件去找。找不到,就是失效,不要用全文搜索把它们「找回来」当作通过。

延伸

  • 同组G1.05.1 元数据支撑筛选、排序与关联 · G1.05.3 元数据的录入成本决定其完整度
  • 相邻G3.02 查询输入与构造 · G3.08 筛选器 · G3.17 检索结果的可解释性
  • 站内检索missing metadata · advanced search · null field

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/G1.05.2