ripgrep-all 多格式文档全文搜索
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/search-pdfs-office-files-ebooks-and-archives-with-one-query-before-manual-review
技能介绍
要解决的问题
把一批混合文档交给 Agent 做审核前排查时,常规做法是先按格式分别抽取——PDF 走 poppler,Word/Excel 走 pandoc 或专用解析库,epub、压缩包、图片旁边的 sidecar 又各有一套工具链。结果是:还没开始检索,准备工作已经吃掉大量上下文,而且任何一个适配器缺失,那条链路就直接断掉。
这个技能针对的正是「先提取、后搜索」两段式流程的浪费。
它是怎么工作的
核心思路是用 ripgrep-all(rga)把检索入口统一成一个:
- 一条查询,跨格式命中:对目录执行一次全文搜索,rga 自行识别文件类型并完成内部抽取与匹配。
- 覆盖范围:PDF、Office 文档(docx/xlsx/pptx 等)、电子书、媒体 sidecar,以及 zip/tar 之类的压缩档案。
- 按需抽取:只有被查询命中的内容才真正展开成文本,其余文件只做类型判断,不做全量解析。
对 Agent 来说,工作流从「解压 → 转换 → 逐个 grep」变成「给一个查询,拿回命中行与文件路径」,中间态文件不必落盘。
适用边界与注意点
- 它不是索引工具,而是按需搜索。同一批文档要反复跑不同查询时,抽取成本每次都会重复支付。
- 结果质量取决于抽取链路。Office 文档里的批注、修订记录、页眉页脚,以及扫描版 PDF 中的图片文字都可能漏掉——后者需要 OCR,rga 本身不提供。
- 压缩档案会被递归展开,嵌套压缩包可能让搜索时间明显拉长,超大 bundle 建议先限定目录范围。
- 本机需要有
ripgrep;pandoc、poppler、ffmpeg等属于可选适配器,缺失时对应格式会退化为不可搜索,而不是报错中断。 - 它解决的是「找得到」,不解决「看得懂」。命中之后是否采信,仍需要人工审核或模型判断。
使用场景
- 审核前排查一批混合目录:需要在 PDF、Word、Excel、电子书和 zip 压缩包里用同一个关键词找出出现过的位置。
- 给 Agent 搭取证式查询入口:不想逐个解压转换,希望一次查询直接拿到命中行和文件路径。
- 核查合同与报表存档:目录混杂 docx、xlsx 和压缩包,要在人工逐份打开前先定位含特定条款的文件。
- 整理电子书与媒体资料库:epub 和 sidecar 混杂,需要用一个关键词快速筛出值得进一步处理的文件。
适合人员
- 给 Agent 做审核前取证的工程师:需要在混合格式目录里一条查询定位证据,不愿先写各格式的解析脚本。
- 处理合同、报表、电子书归档的文档工程师:格式混杂且量大,想在人工打开前快速筛掉不含关键词的文件。
- 自建知识库检索工具的后端开发者:搜索入口要覆盖 PDF、Office 和压缩包,又不想维护多套抽取依赖。
- 媒体资料库或电子书仓库的维护者:epub、图片 sidecar、压缩包混在一起,需要按关键词批量盘点内容。