General Query Construction

通用查询构造——拆解用户意图,保留关键实体,生成精确与召回查询

antins-labs e72c332 2 files · 5.0 KB Updated

File contents

目标

为下游所有搜索面提供统一的查询构造方法:先把用户意图拆成可检索的子事实,再为每个子事实同时生成精确(precision)与召回(recall)两类查询。

适用场景

  • 任何检索任务的预处理阶段
  • 单条 query 难以覆盖问句中多个事实点

规则(共 12 条)

  1. 拆解意图:先把问句拆成 who / what / when / where / value / relation 子事实,每个子事实独立成 query 单元。
  2. 保留关键实体的规范名:人名、机构名、产品名要使用规范化形式(含官方拼写、缩写、别名集合)。
  3. 关键实体不被改写:query rewrite 阶段允许改谓词与修饰词,但实体保持原样。
  4. 同时生成 precision 与 recall 两类:精确查询用规范名 + 关键属性词;召回查询用上位词 / 同义词 / 模糊描述。
  5. 每个子事实至少 2 条 query:1 条 precision,1 条 recall,缺失要标记原因。
  6. 限定词与实体分离:时间、地点、版本等限定条件作为可拆装的修饰段,便于在迭代中增删。
  7. 禁止过长 query:单条 query 关键词数量控制在 2–6 个之间,过长会被搜索引擎降权。
  8. 多语种并行:跨语种实体(中英、日中等)至少各生成一条对应语种的 query。
  9. 禁用一次性长尾问句:把"X 在 Y 条件下的 Z 是多少"这种自然句改写成关键词组合,不要直接搜整句。
  10. 每条 query 写明 expected signal:发出前注明"我期望它命中什么",用于失败诊断。
  11. 去重在结果层:允许 query 之间重叠,去重交给结果归一化阶段。
  12. 当首批 query 全部失败:触发 rewrite 而非简单加 query;rewrite 时换术语 / 换语种 / 换问法。

执行流程

  1. 拆问句为子事实清单。
  2. 对每个子事实生成 precision + recall query 对。
  3. 标注限定词(时间、地点、版本)。
  4. 多语种镜像。
  5. 输出 query 集合,交给具体搜索面。

关联 skill

  • 各搜索面 skill(web_searchgithub_searchcodebase_searchforum_searchofficial_docs_api_searchacademic_literature_search
  • search_recovery_and_verification — 失败时的统一恢复入口

antins-labs/searchos/tree/main/searchos/skills/library/strategy/general_query_construction commit e72c3322bb

Frequently asked questions

npx skillmds@latest add antins-labs/general-query-construction