Skip to content

已知限制与错误处理

已知限制

记录这些限制是为了如实报告结果,而不是静默隐藏:

  • 作者匹配是在原始作者字符串上执行不区分大小写、折叠重音符号的子字符串测试。 它不会规范姓名顺序,因此 author:"Jane Doe" 无法匹配 {Doe, Jane} 字段; 应改用姓氏检索(author:Doe)。子字符串匹配也意味着 author:chen 会同时 匹配 ChenCheng。这便于检索,但引用前必须核实作者。
  • matched_entries 统计通过结构化过滤的条目;它不反映有多少条目因 全文相关性阈值而被丢弃。
  • CJK 多关键词查询最适合连续子字符串(时间序列);用空格分隔的 CJK 词语可能无法全部匹配。
  • 多文件文献库不会自动合并。每个 .bib 文件分别运行一次脚本。 meta.parse_warnings 列表会报告解析问题:因缺少闭合括号等结构缺陷而跳过的 条目、重复 citation key(受影响的每条结果也带有 warnings 字段),以及位于 % 标记后的条目(真正的 BibTeX 仍会解析这些条目)。
  • has:code 是词边界启发式,不是语义分类器。它可以避免 reportedencoderbarcode 等子字符串误匹配,但不能理解否定语义 (without a linked repository 仍会匹配),也不能排除 dress code 等泛化短语。
  • 紧凑查询中的未配对引号会触发 tokenizer 回退,而不是直接报错。双引号短语仍会 作为一组处理,单引号则按字面字符处理;该回退会以 query_tokenizer_fallback 记录在 meta.parse_warnings 中。
  • 年份消歧后缀支持一个小写 ASCII 字母,因此 2024a 会按 2024 年参与过滤。 更长或大写的后缀不会被解释为 BibTeX 年份消歧标记。

错误处理

解析错误

如果 .bib 文件包含格式错误的条目,脚本会继续处理能够解析的有效条目。 当返回条目少于预期时,检查文件编码,并查找缺少闭合括号等明显结构损坏。

空结果集

当没有条目匹配时,按以下顺序建议放宽检索:

  1. 移除 has: 约束,例如 has:code
  2. 扩大或移除年份范围
  3. 使用更少或更短的主题关键词
  4. 检查作者拼写,或尝试部分姓名匹配

大文件

辅助脚本采用线性扫描且不依赖外部解析器。对于很大的文献库,运行时间会按比例增长, 但 JSON 契约保持不变。

基于 MIT 许可发布