G3.02.2unused advanced syntax设计研究

高级语法几乎不被使用

别名: 布尔语法 · advanced search operators · 检索式

概念解释

AND、OR、NOT、引号短语、字段: 这类高级语法(advanced query syntax)在真实查询里极少出现。Hearst 对搜索界面的观察和多次查询日志分析都指向同一件事:绝大多数人把搜索框当成「往里扔词」的地方,而不是一门要写对的语言。语法几乎不被使用,不是功能没做出来,是这门语言的学习成本和写错代价,对非检索专家来说高过它能省下的时间。

「几乎不被使用」说的是主动写出操作符。它不等于查询很短,也不等于系统不该理解整句;短是长度问题,整句是语言形态问题。

机制

高级语法是一种隐藏文法。正确的 AND 与口语里的「和」不是一回事,引号漏写、OR 和「或」混用、减号被当成连字符,写出的字面往往与用户以为的逻辑相反。一次写错没有编译器式的红线,只有一批莫名其妙的结果或空集,用户无法把失败归因到语法,于是下次不再试。

即便文法被教会,它也要用户在提交前就把布尔结构想清楚。这与人实际的查找过程相反:约束是在看到结果之后才加的。把「只要 PDF、只要今年」做成事后筛选,比要求用户写成 type:pdf year:2024 更贴合那条过程。高级检索面板把语法可视化,能服务需要可重复检索式的专家;把它当作默认主路径,等于用少数人的熟练度要求所有人。

日志里偶尔出现的 AND、OR 还有大量假阳性:用户把它们当普通词写入(「研发 AND 测试」其实想搜一个组名),引擎按操作符解释后结果更糟。

怎么研究

在日志里把真操作符和碰巧写出的英文词分开,不要看到 AND 就当成高级用法。

  • 范式:查询日志中操作符与字段前缀的出现率、写对率、写错后的改写;对照实验——同等约束用语法框 vs 用筛选控件完成;Hearst 对 advanced search 使用率的报告。
  • 自变量:操作符是否被界面提示、高级面板是否为默认入口、等价约束能否用筛选完成。
  • 因变量:主动使用率、语法错误导致的空集比例、同一约束用控件完成的成功率。
  • 方法论注意点:图书馆员、专利检索员、客服里的「超级用户」会显著抬高平均值,要按角色分层。实验室若发一张「请用 AND 连接」的说明书,测到的是服从,不是自发使用。减号、引号在中文查询里还承担标点和专名功能,切分规则要单独标定。

边界

专业检索(法律、专利、医学文献、情报)把检索式本身当作可保存的工作产物,语法是核心技能,不能因为大众日志里少见就撤掉。机器或脚本调用的 API 查询也不走「人写语法」这条路。当筛选控件覆盖不了某个结构(邻近词距离、正则)时,语法仍是唯一通路,应留给明确需要它的模式,而不是塞进默认框的 placeholder。教过一次不等于以后会用:培训效果在日常短查询里衰减很快。

怎么落地

  • 默认搜索框按词袋和宽松匹配工作,不要把占位符写成 AND OR site: 来暗示这是一门语言。
  • 把常见约束做成结果页上的筛选或范围,而不是要求写成字段语法;高级面板留给需要保存检索式的角色。
  • 若用户真的写入了操作符,解释本次如何被理解(「AND 被当作逻辑与」),写错时允许一键按普通词重搜。
  • 验证:在生产日志里统计操作符出现率与写对率。若默认框几乎没人写、一写就空,就不要把高级语法当主能力宣传;若某类角色写对率高,把面板放到他们的工作台,而不是所有人的首页。

延伸

  • 同组G3.02.1 用户查询通常短且不精确 · G3.02.3 查询应支持自然语言而非要求关键词
  • 相邻G1.05 元数据 · G3.08 筛选器 · G3.17 检索结果的可解释性
  • 站内检索advanced query syntax · Boolean operators · query log analysis

同组卡片

快捷操作

分享

分享当前页面

ios_share

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