乐于分享
好东西不私藏

喂给AI的知识库,不是直接丢文件进去就行——文档解析是第一道坎

喂给AI的知识库,不是直接丢文件进去就行——文档解析是第一道坎

你可能听过这个说法:做 RAG,就是把文档切成块,往向量数据库里一存,检索出来喂给模型。

听起来很简单。

但真正做过的人都知道,第一步就把很多人卡住了——

文件格式那么多(PDF、Word、PPT、Excel、图片……),里面的内容有标题、有段落、有表格、有图表、有页眉页脚。AI 怎么知道哪些是正文、哪些是注释、哪些是页码?

这一步,叫做文档解析

它是 RAG 流水线里最容易被低估的环节,也是决定知识库质量的第一关。

RAG系列·第1篇:文档解析——喂给AI的知识库,不是直接丢文件就行


目录

  • 1. 文档解析,到底在做什么
    • 1.1 一个不准确的类比
    • 1.2 文档解析的定义
    • 1.3 为什么直接复制文字不够用
  • 2. 文档解析的核心步骤
    • 步骤一:布局分析(Layout Analysis)
    • 步骤二:阅读顺序还原
    • 步骤三:内容提取
    • 步骤四:结构化输出
  • 3. 文档解析 vs OCR vs 多模态大模型
    • 3.1 三种技术的核心原理
    • 3.2 一张图说明三者的关系
    • 3.3 实践中三者的真实关系
    • 3.4 适用场景对比
  • 4. 实际工作流:三者怎么配合
  • 5. 选型建议:什么时候用什么
  • 6. 主流工具推荐
  • 7. 一句话总结

1. 文档解析,到底在做什么

1.1 一个不准确的类比

想象你有一本书,想让 AI 理解它的内容。

最笨的做法:把整本书扫描成一张张图片,扔给模型看。

聪明一点的做法:把书里的文字提取出来。

但更聪明的是:不仅提取文字,还要理解书的结构——哪是章节标题,哪是一级内容,哪是图表说明,哪是引用注释。

第三种做法,就是文档解析在做的事情。

1.2 文档解析的定义

文档解析:从原始文档中,识别并提取出具有语义意义的结构化片段,并将其转化为大模型可以理解的格式。

这句话有三个关键词:

原始文档——可能是 PDF、Word、PPT、Excel,甚至是一张截图。注意,并非所有 PDF 都有文字层——某些设计软件导出或加密的 PDF,底层只有图像信息,看起来是文档,实际上文字不可选中、不可复制,这种"假PDF"本质上就是图片。

结构化语义片段——不是把文字全部打成一团,而是识别出:

  • 这段文字是什么类型的(标题、正文、表格、列表)
  • 这段文字和其他内容是什么关系(段落包含关系、引用关系)

大模型可理解的格式——通常指 Markdown、JSON 或纯文本块,加上必要的元信息(这段在第几页、属于哪个章节)。

1.3 为什么直接复制文字不够用

很多人会问:PDF 直接复制文字不行吗?

不行。原因很现实:

原始 PDF 文字:"第三章  RAG 技术详解3.1  什么是 RAGRAG(Retrieval-Augmented Generation)是一种结合检索和生成的..."

复制出来的效果:

  • 丢失了标题和正文的层级关系
  • 丢失了段落之间的逻辑边界
  • 丢失了页眉页脚的噪音
  • 丢失了表格和图表里的信息

好的文档解析后:

{"type""heading","level"1,"text""第三章 RAG 技术详解"}{"type""heading","level"2,"text""3.1 什么是 RAG"}{"type""paragraph","text""RAG(Retrieval-Augmented Generation)是一种...","page"1}{"type""table","headers": ["技术名称""优缺点""适用场景"],"rows": [...]}

2. 文档解析的核心步骤

一个完整的文档解析流程,包含以下四个步骤:

步骤一:布局分析(Layout Analysis)

识别文档的视觉结构——哪块是文字、哪块是表格、哪块是图片、哪块是页眉页脚。

这一步决定了你能不能把"噪音"和"正文"区分开。

传统方法:用规则(PDF 里固定位置通常是页眉页脚)。

现代方法:用布局检测模型(深度学习),识别文档里每个区域的类型,准确率高得多。

步骤二:阅读顺序还原

把二维页面上的元素,按照正确的阅读顺序串起来。

为什么这步很重要?

这取决于 PDF 是怎么生成的:

数字生成的 PDF(Word/WPS/浏览器直接导出):文字流顺序通常就是阅读顺序,不乱,解析起来相对容易。

扫描件或图片转的 PDF:没有文字流信息,靠 OCR 提取后再靠算法推断阅读顺序,这时候多栏排版和跨页表格就容易顺序错乱。

一个三栏 PDF 页面:左边栏 | 中间栏 | 右边栏物理存储顺序可能是:左边栏第1段 → 中间栏第1段 → 右边栏第1段 → 左边栏第2段...阅读顺序应该是:左边栏第1段 → 左边栏第2段 → 中间栏第1段 → 中间栏第2段...

步骤三:内容提取

针对不同类型的内容,用不同的提取策略:

文字区域 → OCR 或 PDF 文本提取表格区域 → 表格识别(保留行列结构)图片区域 → 提取图片,供后续多模态处理公式区域 → LaTeX 或文本化

步骤四:结构化输出

把提取的内容,按照语义关系组织成模型友好的格式:

# 第三章 RAG 技术详解## 3.1 什么是 RAGRAG(Retrieval-Augmented Generation)是一种...## 3.2 RAG 的核心组件RAG 系统包含以下核心组件...| 组件 | 作用 ||------|------|| 检索器 | 从知识库中找到相关内容 || 生成器 | 根据检索结果生成回答 |

动手试一下:用 PyMuPDF 解析一份 PDF

上面讲的都是原理,下面用一段真实代码感受一下文档解析的过程。这里用 PyMuPDF(也叫 fitz),它是 Python 中最常用的 PDF 解析库之一:

import fitz  # pip install PyMuPDFdefparse_pdf(pdf_path):"""解析 PDF,提取每页的文字和表格信息"""    doc = fitz.open(pdf_path)    pages = []for page_num, page in enumerate(doc, start=1):# 提取文字(带格式信息)        text_blocks = page.get_text("dict")["blocks"]        page_content = []for block in text_blocks:if block["type"] == 0:  # 文字块                lines = [span["text"for line in block["lines"]for span in line["spans"]]                page_content.append({"type""text","content"" ".join(lines),"bbox": block["bbox"]  # 位置信息:用于判断页眉页脚                })elif block["type"] == 1:  # 图片块                page_content.append({"type""image","bbox": block["bbox"]                })        pages.append({"page": page_num,"content": page_content        })return pages# 使用示例result = parse_pdf("product_manual.pdf")for page in result:    print(f"\n=== 第 {page['page']} 页 ===")for block in page["content"]:if block["type"] == "text":            print(f"  [文字] {block['content'][:80]}...")elif block["type"] == "image":            print(f"  [图片] 位置: {block['bbox']}")

这段代码做了什么?

步骤
作用
fitz.open()
打开 PDF 文件
get_text("dict")
获取带格式信息的文字块(含位置、字体等)
block["type"]
区分文字块(0)和图片块(1)
bbox
块的坐标位置——页眉页脚通常在固定 y 坐标,可据此过滤

这是文档解析的最基础实现。实际生产中,你会用 Unstructured、LlamaParse 等工具,它们内部已经集成了更强大的布局分析模型和 OCR 引擎,不需要从零写起。但理解这个基本流程,能帮你选对工具、看懂工具输出。


3. 文档解析 vs OCR vs 多模态大模型

这三个东西,都是"识别原始文件信息"的方式,但原理不同、适用场景不同。

很多人容易混淆,或者认为"有了多模态大模型,OCR 和文档解析就不用了"。

这个理解是错的。

3.1 三种技术的核心原理

技术
原理
输入
输出
OCR
光学字符识别,把图像里的文字转成文本
图片/扫描件/无文本层的PDF
纯文本(丢失结构)
文档解析
深度学习模型,识别版面结构和语义类型
有文本层的PDF/Word/PPT/Excel
结构化内容块(保留层级)
多模态大模型
视觉+语言联合理解,不只识别文字,还理解图表、示意图
图片/PDF页面截图
文字描述/回答

3.2 一张图说明三者的关系

原始文件   │   ├── 有文本层的PDF/Word/Excel   │      │   │      └── 文档解析(布局分析+内容提取+结构化)→ 结构化块   │   ├── 无文本层的文件   │  (扫描件/图片/某些导出的PDF)   │      │   │      └── OCR(提取文字)→ 纯文本   │              │   │              └── 文档解析(识别结构)→ 结构化块   │   └── 复杂视觉内容          (图表、示意图、流程图)              │              └── 多模态大模型(理解图像语义)→ 文字描述

3.3 实践中三者的真实关系

上面这张图是按输入类型区分的,逻辑上清晰,但在实践中,它们并不是独立的三个工具各行其道,而是分层嵌套的关系。

大多数成熟的文档解析工具,内部已经集成了 OCR 引擎。当你丢进去一份扫描件 PDF,它会:

  1. 先在内部调 OCR 引擎做文字提取(OCR 层)
  2. 再做布局分析,识别区域类型(解析层)
  3. 最后还原阅读顺序,生成结构化输出(输出层)

所以你的实际工作流往往是:

扫描件 PDF  → 工具内部:OCR引擎提取文字 → 布局模型分析结构 → 阅读顺序还原 → 结构化块  → 你得到的:可以直接用的结构化内容

你看不到 OCR 的调用过程,但它在背后工作。

这就是为什么前面表格里写着"文档解析的输入是 PDF/Word/图片"——它能处理图片,正是因为内部集成了 OCR。

3.4 适用场景对比

OCR 的适用场景:

  • 手写文件识别(发票、表格、手写笔记)
  • 老旧扫描件的文字提取
  • 截图里的文字识别
  • 纯文字图片(没有复杂排版)
最佳拍档:OCR + 文档解析扫描件 → OCR提取文字 → 文档解析识别结构

文档解析的适用场景:

  • 结构化文档(论文、合同、报告)
  • 多栏排版文档(报纸、杂志)
  • 跨页表格
  • 目录、章节层级需要保留的文档
最佳拍档:文档解析 + 后续处理PDF → 文档解析 → 语义分块 → 向量检索

多模态大模型的适用场景:

  • 图表理解(柱状图、折线图、饼图表达的是什么)
  • 示意图、流程图理解(这个架构图里的组件是什么关系)
  • 复杂排版(OCR 识别不出的内容,多模态模型能理解上下文)
  • 图片问答(给一张截图,问这个界面里有什么按钮)

不过要注意:多模态模型擅长的是概括性理解,而不是精确提取

多模态模型擅长的:✓ 图表概括:"这张图是产品的月度销售趋势图"✓ 流程图理解:"这个架构图展示了三层架构:前端、服务层、数据层"✓ 截图问答:"这个界面右上角的按钮是什么功能"多模态模型不擅长的:✗ 精确读取图表数值:"2026年3月的销售额是 12,847 元"✗ 还原表格结构:"第三行第二列的值是 XXX"✗ 多页文档的连贯理解(上下文窗口再大也有极限)

如果需要精确的结构化数据提取(比如表格里的具体数值),多模态大模型目前不如专门的 OCR + 结构化解析方案可靠。所以应该是:多模态做语义理解,专门的引擎做精确提取,两者组合使用。

最佳拍档:多模态模型 + 文档解析复杂 PDF → 文档解析(文字+结构) + 多模态模型(图表+图片) → 合并输出

4. 实际工作流:三者怎么配合

举一个真实场景:处理一份产品说明书 PDF。

这份 PDF 包含:

  • 封面(图片)
  • 目录(文字)
  • 章节正文(多栏排版)
  • 多个数据表格
  • 多个产品架构图

方案一:只用 OCR(面对是扫描件或纯图片)

扫描件 PDF → OCR → 纯文字结果:文字倒是提取出来了,但:- 没有层级信息,目录和正文混在一起- 表格结构丢了(行列对不上)- 图片里的内容完全丢失- 多栏排版顺序混乱

方案二:处理数字 PDF(只用文档解析,不需 OCR)

有文字层的 PDF → 文档解析 → 结构化块(文字+表格+图片位置)图片位置 → OCR → 图片里的文字结果:结构保留了,图片里的文字也识别了但:图表里的语义信息("这张图说明了什么")还是丢失

方案三:完整方案——不同内容用不同手段

PDF → 文档解析 → 结构化块          │          ├── 文字区域 → 直接使用          ├── 表格区域 → 结构化提取          └── 图片/图表区域 → 多模态模型理解 → 文字描述最终输出:{"text_blocks": [...],"tables": [...],"image_descriptions": ["图1展示了产品架构,包含前端层、服务层、数据层...","图2是用户使用流程,从登录到下单到支付..."  ]}

三种技术配合,才能拿到最完整的知识库内容。


5. 选型建议:什么时候用什么

场景
推荐方案
纯文字 PDF,结构简单
文档解析即可
扫描件(图片为主)
OCR + 文档解析
大量发票、表格、手写文件
OCR(选支持表格识别的引擎)
论文、技术文档、合同
文档解析(选支持多栏、公式识别的引擎)
包含大量图表的技术文档
文档解析 + 多模态模型
需要理解截图含义
多模态大模型
生产级 RAG 知识库
文档解析(主)+ OCR(辅助)+ 多模态(处理图表)

6. 主流工具推荐

文档解析目前没有一站式完美方案,以下是实践中常用的组合:

文档解析工具:

  • Unstructured:开源,支持多种文件格式,社区活跃,适合快速原型
  • LlamaParse:由 LlamaIndex 团队出品,对复杂 PDF 效果好
  • Marker:开源,支持 PDF 转 Markdown,效果不错
  • 国产:庖丁科技 PDFlux、达观数据:对中文文档支持更好

OCR 工具:

  • PaddleOCR:百度开源,中文识别效果好,免费
  • Tesseract:老牌开源,英文为主
  • 腾讯云 OCR / 阿里云 OCR:付费 API,中文和表格识别强

多模态模型:

  • GPT-4o / Claude 3.5:效果最好,成本最高
  • Gemini 1.5:上下文窗口大,适合处理大量图片
  • 国产:通义千问 VL、智谱 GLM-4V:成本低,效果够用

7. 一句话总结

文档解析、OCR、多模态大模型,是处理原始文件信息的三种不同层次的手段——OCR 解决"有没有文字层",文档解析解决"结构清不清楚",多模态模型解决"图能不能看懂"。在实践中,好用的文档解析工具内部已经集成了 OCR,你无需刻意"选择"而是"组合"使用。

构建 RAG 知识库时,先搞清你的文档属于哪种类型,再决定用什么手段。多模态做语义理解,专用引擎做精确提取,彼此配合才是最优解。

不是贵的就好,也不是新的就强,适合文档类型的才是对的


下一篇预告:分块策略——把文档切成什么形状,直接决定RAG效果 · RAG系列第2篇

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-11 17:49:37 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/607649.html
  2. 运行时间 : 0.310254s [ 吞吐率:3.22req/s ] 内存消耗:4,802.38kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=4e5bb428ea5ba66f50e61b5be33ca9c3
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000911s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001182s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.004676s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.008357s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001421s ]
  6. SELECT * FROM `set` [ RunTime:0.002321s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001608s ]
  8. SELECT * FROM `article` WHERE `id` = 607649 LIMIT 1 [ RunTime:0.007416s ]
  9. UPDATE `article` SET `lasttime` = 1778492978 WHERE `id` = 607649 [ RunTime:0.002752s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.003506s ]
  11. SELECT * FROM `article` WHERE `id` < 607649 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001146s ]
  12. SELECT * FROM `article` WHERE `id` > 607649 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.009794s ]
  13. SELECT * FROM `article` WHERE `id` < 607649 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.008314s ]
  14. SELECT * FROM `article` WHERE `id` < 607649 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002132s ]
  15. SELECT * FROM `article` WHERE `id` < 607649 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.019346s ]
0.315988s