乐于分享
好东西不私藏

一文讲透 RAG:从文档分片、向量检索到企业级知识库的完整工作流程

一文讲透 RAG:从文档分片、向量检索到企业级知识库的完整工作流程

RAG(Retrieval-Augmented Generation,检索增强生成)已经成为 AI 知识库、企业 Copilot、智能客服和 Agent 系统最重要的基础架构之一。

但很多开发者对 RAG 的理解仍停留在"Embedding + 向量数据库"这一层,而真正影响知识库效果的文档解析、Chunk、Recall、Rerank、Prompt 等关键环节,却往往被忽略。

一个真正可用于生产环境的 RAG,并不是几个组件的简单组合,而是一条完整的知识处理流水线。

本文将从企业级 RAG 的完整工作流程出发系统拆解Document Parser、Chunk、Embedding、Vector Database、Recall、Rerank、Prompt等核心组件,并结合实际工程经验,带你完整理解高质量知识库背后的技术原理。


为什么很多企业知识库效果不好?

如果你做过 AI 知识库、企业客服或者内部知识助手,很可能遇到过这些问题:

  • 文档里明明有答案,模型却回答"不知道"?
  • 上传了几百份 PDF,回答仍然经常答非所问?
  • 相同的问题,却得到完全不同的答案?
  • 知识库越来越大,回答速度越来越慢?
  • 接入向量数据库以后,效果却没有明显提升?

很多团队第一次接触 RAG 时都会认为:

"只要把 PDF 放进向量数据库,就拥有了 AI 知识库。"

真正上线之后才发现,实际情况远没有这么简单。

  • 知识片段可能没有被正确切分;

  • Embedding 模型可能无法准确表达业务语义;

  • 检索没有找到真正相关的内容;

  • 重排没有过滤掉噪声;

  • Prompt 没有约束模型生成。

最终导致的结果就是:

  • 检索出来的内容并不准确;
  • 大模型引用了错误的知识片段;
  • 回答仍然存在大量幻觉;
  • Token 成本越来越高;
  • 用户体验远低于预期。

事实上,这些问题大多数都不是大模型本身造成的。

一个企业级知识库的回答质量,很大程度上取决于:

  • 文档解析是否正确;
  • Chunk 是否合理;
  • Embedding 是否适合当前业务;
  • Recall 是否能够找到真正相关的数据;
  • Rerank 是否能够筛掉噪声;
  • Prompt 是否限制了模型自由发挥。

换句话说,一个优秀的 RAG 系统,本质上并不是"一个模型",而是一条完整的数据处理流水线。

而大模型,只是这条流水线中的最后一个环节。


从整体来看,一个企业级 RAG 会经历下面几个关键阶段:

文档解析 → 文档分片 → 向量化 → 向量存储 → 检索召回 → 重排排序 → Prompt 组装 → 大模型生成答案

整个过程并不是让大模型"记住所有知识",而是让模型在回答之前,先找到正确的资料,再依据资料完成回答。

理解了这一点,也就理解了 RAG 的真正价值。

下面,我们就从整个工作流程开始,逐步拆解一个企业级 RAG 系统的完整技术链路。


第一章:RAG 的整体工作流程

理解了 RAG 的作用之后,我们来看它究竟是如何工作的。

很多文章介绍 RAG 时,会直接从 Embedding 开始讲。

实际上,一个完整的企业级 RAG 远不止如此。

它通常包含两条完整的数据链路:

第一条,是离线知识构建流程

负责把企业文档加工成可检索的数据。

第二条,是在线问答流程

负责根据用户问题快速找到相关资料,并交给大模型生成答案。

整个过程可以概括为下面这张架构图。

企业文档PDF / Word / Markdown / Excel │ ▼Document Parser(文档解析) ▼Chunk(文档分片) ▼Embedding(向量化) ▼Vector Database(向量数据库)══════════════════════════════用户问题 ▼Embedding ▼Recall(召回) ▼Rerank(重排) ▼Prompt Construction ▼LLM ▼Answer

从整体来看,这条链路可以拆成五个核心阶段:

  1. 文档分片(Chunk)
  2. 向量化(Embedding)
  3. 检索召回(Recall)
  4. 重排(Rerank)
  5. 大模型生成(Generation)

其中,前三步更多属于数据准备阶段

后两步属于在线推理阶段

很多人认为:

RAG = Embedding + 向量数据库。

实际上,这只是整个系统的一小部分

真正影响企业知识库效果的,是整条流水线是否协同工作。

例如:

  • Chunk 是否切分合理?
  • Embedding 是否适合中文?
  • Recall 是否能够召回真正相关的内容?
  • Rerank 是否过滤掉噪声?
  • Prompt 是否限制模型胡编?

这些都会直接影响最终回答质量。

因此,我们可以把 RAG 理解成:

Document → Retrieval → LLM

也就是:

先加工知识,再精准检索,最后交给模型理解和生成。


第二章:第一步——Chunk,把大文档拆成可检索的知识单元

理解了 RAG 的整体流程之后,我们先来看第一步,也是最容易被忽略的一步:

Chunk(文档分片)。

很多开发者第一次接触 RAG 时,都会把注意力放在 Embedding 或向量数据库上,而认为分片只是"把文档切一下"这么简单。

实际上,Chunk 策略往往决定了整个知识库的上限。

很多知识库效果不好,并不是 Embedding 模型不够优秀,而是文档一开始就没有切好。


为什么一定要分片?

假设企业有一本产品使用手册,共 300 页。

用户提出一个问题:

某功能如何开启日志采集?

真正能够回答这个问题的,可能只有其中两页内容。

如果系统把整本手册一次性交给大模型,就会带来三个问题:

第一,上下文窗口有限。

即使是支持数十万 Token 的模型,也不适合每次重新阅读整本文档。

第二,Token 成本过高。

每次回答问题都输入几万甚至几十万 Token,不仅昂贵,而且毫无必要。

第三,相关信息容易被淹没。

资料越长,无关内容越多,大模型反而更难关注真正有价值的信息。

因此,一个成熟的 RAG 系统,并不是让模型阅读整本文档,而是:

提前把文档拆成许多个可以独立检索的小知识单元。

这就是 Chunk 的意义。


Chunk 是什么?

Chunk(文档分片),就是把一篇完整文档拆分成多个较小的文本片段。

例如:

产品手册(100 页)Chunk 1产品介绍Chunk 2安装部署Chunk 3数据库配置Chunk 4日志采集Chunk 5权限管理

这样,当用户询问:

如何配置日志采集?

系统只需要找到 Chunk4,而不需要重新处理整个产品手册。



常见的 Chunk 方式

实际项目中,并不存在一种万能的 Chunk 策略。

不同类型的数据,适合不同的切分方式。

常见方式包括:

① 固定长度切分

例如:

  • 每 500 字
  • 每 1000 Token

优点:

  • 实现简单;
  • 数据量均衡。

缺点:

  • 容易截断完整语义;
  • 标题与正文可能被拆开。

② 按段落切分

一个自然段作为一个 Chunk。

优点:

  • 保持语义完整;
  • 阅读体验较好。

缺点:

  • 长度差异较大;
  • 某些段落可能过长。

③ 按标题切分(推荐)

例如:

第3章数据库配置Chunk数据库配置全部内容

优点:

  • 保留文档结构;
  • 非常适合企业文档。

也是目前很多生产系统最常采用的方法。


④ 按业务结构切分

例如:

FAQ:

Q......A......

一组问答就是一个 Chunk。

或者:

合同制度API 文档

按照天然业务边界切分。


为什么还需要 Overlap?

很多人发现:

如果一句话正好被切断怎么办?

例如:

Chunk1......安装完成后---------Chunk2请执行 restart

真正答案其实跨越两个 Chunk。

怎么办?

工程实践通常采用:Overlap(重叠窗口)

例如:

Chunk11~500Chunk2450~950

中间:50 Token 重复。

这样即使语义跨越边界,也不会丢失。


第三章:第二步——Embedding,把文本转换成语义向量

完成文档分片之后,系统仍然无法进行语义检索。

因为计算机并不能直接理解:"数据库配置"、"日志采集" 这些文字。

它真正能够计算的是:数字。

因此,下一步就是:Embedding。


Embedding 是什么?

Embedding 可以理解成:

把文本映射到高维向量空间。

例如:

数据库配置Embedding[0.23-0.650.88......]

最终得到的是几百维甚至几千维的数字。

这些数字就是:向量(Vector)。



为什么要转换成向量?

Embedding 的核心目标不是压缩文本。

而是:表达语义。

例如:

苹果香蕉水果

经过 Embedding 后,它们在向量空间中的距离会比较近。而:

汽车数据库天气

距离则更远。

也就是说:

语义越接近,向量越接近。

这也是语义检索能够成立的根本原因。


Embedding 与 Tokenizer 有什么区别?

很多人容易把两者混淆。

实际上:Tokenizer:负责:

文字Token

Embedding:负责:

TokenVector

Tokenizer是:切分文本。

Embedding 是:表达语义。

两者属于完全不同的阶段。


Embedding 模型如何选择?

企业项目中,Embedding 模型不能随便更换。

需要考虑:

  • 中文效果
  • 英文效果
  • 多语言支持
  • 向量维度
  • 推理速度
  • 成本

不同模型得到的向量空间也不同。因此:

文档向量和问题向量必须来自同一种(或兼容)Embedding 模型。

否则:相似度计算将失去意义。


第四章:第三步——Vector Database,让语义检索成为可能

完成 Embedding 后,每一个 Chunk 都拥有了对应的向量。

下一步,就是把这些向量保存起来。

这里使用的,不是 MySQL,也不是 Elasticsearch。

而是:Vector Database(向量数据库)。


为什么不能直接存数据库?

假设:

企业已经拥有:

100 万个 Chunk。

每次用户提问,都需要计算:

问题向量VS100万个向量

如果逐个计算,效率将非常低。因此,需要一种专门针对:

高维向量相似度搜索设计的数据库。这就是:Vector Database。


向量数据库保存什么?

很多人误认为:

向量数据库只保存:向量。

实际上,一个 Chunk 往往包含:

Chunk原始文本Embedding Vector标题来源页码权限标签更新时间

因此:向量数据库不仅保存:Vector。还保存:各种 Metadata。



常见的向量数据库

目前企业最常见的包括:

  • Milvus
  • Qdrant
  • Weaviate
  • Pinecone
  • Chroma(开发测试)
  • FAISS(本地检索库)

不同数据库:索引算法、扩展能力、过滤能力、性能特点,都略有不同。

但目标一致:

快速找到最相似的向量。


为什么向量数据库这么快?

因为它不会遍历全部数据。而是采用:ANN(Approximate Nearest Neighbor)近似最近邻搜索。

例如:HNSW、IVF、PQ等索引算法。能够把:百万、千万、甚至上亿向量,都保持较快检索速度。


第五章:第四步——Recall,从海量知识中快速找到候选答案

经过 Chunk、Embedding 和向量化存储之后,一个企业知识库已经拥有了成千上万个甚至数百万个知识片段。

那么,当用户提出问题时,系统究竟是如何在如此庞大的知识库中快速找到相关内容的?

这一步,就是:Recall(召回)。


Recall 是什么?

Recall 可以理解成:

从整个知识库中,快速找出"可能相关"的一批知识片段。

例如,用户提出:

如何配置日志采集?

系统首先会把这个问题送入与文档相同的 Embedding 模型。

用户问题EmbeddingQuestion Vector

后,系统会拿这个问题向量,与向量数据库中的所有 Chunk 向量进行相似度计算。

最终得到:

Top50 CandidateChunk12Chunk38Chunk102Chunk265......

这就是 Recall。


为什么不是直接取 Top3?

很多初学者都会产生一个疑问:

既然最终只需要几个片段,为什么不直接检索:Top3?

原因很简单:

向量检索属于近似匹配。

它擅长:

但并不一定:最准

例如:用户:

如何配置日志采集?

Recall 结果:

① 日志采集② 日志存储③ 日志查询④ 数据采集⑤ 系统监控......

其中真正答案可能排在:第6名。

如果直接:Top3,真正答案就丢失了。

因此,生产环境通常采用:

RecallTop30Top50Top100

先尽可能保证:召回率。


Recall 更关注"找全"

Recall 阶段最重要的指标不是准确率。

而是:

Recall Rate(召回率)。

也就是说:真正相关的数据,最好都能够进入候选集合。即使混入一些噪声,问题也不大。因为后面还有:Rerank


Recall 常见实现方式

目前主要包括:

① Vector Search

完全依赖:Embedding。

优点:

  • 理解语义;
  • 能处理同义词;
  • 不依赖关键词。

② Keyword Search

例如:BM25。完全依赖:关键词匹配。

优点:

  • 精准;
  • 对专有名词效果好。

缺点:

不能理解语义。


③ Hybrid Search(推荐)

企业项目目前最常见:

Vector Search+BM25Hybrid Recall

这样既能理解语义。又能保证关键词命中。

因此,大部分生产级知识库都会采用混合检索,而不是单纯依赖向量搜索。


第六章:第五步——Rerank,从候选内容中精挑细选

Recall 已经帮助系统找到了一批候选知识。

但是:它们真的都适合作为最终答案吗?

答案是:不一定。

因此,还需要下一步:Rerank(重排)。


为什么需要 Rerank?

Recall 更像:初筛。

例如:

Top50真正相关Top5部分噪声Top45

虽然真正答案已经进入候选集合,但是排序可能并不理想。

例如:

Top1日志存储Top2日志查询Top3监控配置Top4日志采集(真正答案)

如果直接交给大模型,很可能受到前几个无关 Chunk 的干扰。

因此:需要重新排序。


Rerank 是什么?

Rerank 可以理解成:

重新判断问题与候选片段之间真正的相关程度。

Recall:比较的是

Question VectorVSChunk Vector

Rerank:比较的是:

Question+ChunkCross Encoder

也就是说,模型真正阅读问题和文本。因此准确率更高。


Recall 与 Rerank 的区别

可以简单理解成:

Recall 快 找全Rerank 慢 找准

或者招聘流程。

Recall:筛简历。

Rerank:面试。

最终录用。


为什么不直接使用 Rerank?

原因同样是:成本。假设知识库100 万 Chunk。如果每次问题都让 Cross Encoder计算100 万次。几乎不可接受。

因此必须:

RecallTop50RerankTop5LLM

这种两阶段架构,也是目前企业最主流的方案。


第七章:第六步——Prompt Construction,让大模型依据资料回答问题

经过 Recall 与 Rerank 之后,系统终于拿到了真正相关的几个知识片段。最后一步就是:把这些资料交给大模型


Prompt 是如何组成的?

很多人认为RAG 已经完成了。其实,还差最后一步。系统需要把:用户问题、知识片段、回答规则。组织成:一个完整 Prompt。

例如:

System Prompt+Question+Reference Chunks+Answer RulesLLM

例如:

请根据下面提供的资料回答问题。如果资料中没有答案,请明确说明:”当前资料无法确认。”不要编造内容。================知识片段:......================用户问题:......

随后一起发送给LLM。


为什么 Prompt 很重要?

很多人觉得只要检索正确,模型一定能回答正确。实际上不是。如果 Prompt 写得不好,模型仍然可能:

  • 忽略资料;
  • 编造答案;
  • 混入训练知识;
  • 引用错误 Chunk。

因此,生产环境通常会增加:

  • 来源引用;
  • 回答格式;
  • 不允许胡编;
  • 没找到答案必须拒答;
  • 输出引用出处。

这样才能保证:答案更加可信。


一个完整的 RAG Prompt

通常包括:

System Prompt用户问题Recall + Rerank得到的知识片段回答规则LLM

最终生成答案。


到这里,整个 RAG 才真正完成

从最开始的一份 PDF,到最终回答用户,整个过程可以总结为

DocumentChunkEmbeddingVector Database══════════════════QuestionEmbeddingRecallRerankPromptLLMAnswer

这一条链路就是一个企业级 RAG 的完整工作流程


第八章:为什么很多 RAG 项目效果不好?

完成前面的流程之后,很多开发者会认为:

文档已经切分了,向量也建立了,检索和重排也做了,RAG 应该就能稳定工作了。

然而,在真实项目中,大多数 RAG 项目真正上线之后,仍然会遇到各种各样的问题。

例如:

  • 文档里明明有答案,却始终检索不到;
  • 相同的问题,每次回答都不一样;
  • 回答引用了错误的知识片段;
  • 回答中仍然出现幻觉;
  • 知识库越来越大,效果却越来越差。

这些问题,并不是某一个组件造成的,而是整条 RAG 链路共同作用的结果。

通常来说,一个 RAG 系统效果不好,主要集中在下面几个环节。


问题一:Chunk 切分不合理

Chunk 是整个 RAG 的基础。

如果 Chunk 切得不好,后面的 Recall、Rerank 再优秀,也无法弥补。

例如:

Chunk A安装完成后……------------Chunk B……请执行 restart 服务

真正的答案被拆到了两个 Chunk 中。

Recall 即使找到了 Chunk A,也无法得到完整答案。

反过来,如果 Chunk 太大,例如把一个章节全部作为一个 Chunk:

安装部署(4000 Token)

虽然保证了语义完整,但又会引入大量无关信息,降低检索精度,同时增加 Token 消耗。

因此,Chunk 的目标不是越大越好,也不是越小越好,而是在语义完整性检索效率之间取得平衡。


问题二:Embedding 模型选择不合适

Embedding 模型决定了语义表达能力。

如果模型不适合当前业务领域,就容易出现:

问题:如何配置日志采集?召回:日志查询日志导出日志删除……

正相关的 Chunk 根本没有进入候选集合。

因此:

  • 中文知识库应优先选择中文效果较好的 Embedding 模型;
  • 垂直行业知识库应尽量选择领域模型;
  • 文档向量与问题向量必须使用同一套 Embedding 模型。

问题三:Recall 不全

Recall 更强调"找全"。如果 Recall TopK 设置过小,例如:

Recall Top3

真正答案可能排在第 5 位。因此很多企业都会采用:

Recall Top30Rerank Top5

这样能够明显提升最终准确率。


问题四:Prompt 缺乏约束

很多人认为:检索出来之后,直接把内容交给 LLM 即可。

事实上,如果 Prompt 没有限制,大模型仍可能:

  • 使用训练知识补充答案;
  • 忽略知识片段;
  • 编造不存在的信息;
  • 混合多个 Chunk。

因此,生产环境一般都会增加如下约束:

仅依据提供资料回答。如果资料不足,请明确说明:”无法确认”。不得补充推测内容。

这样能够有效降低幻觉。


问题五:忽略数据质量

很多项目上线效果不好,根本原因并不是模型,而是数据。

例如:

  • PDF 排版混乱;
  • OCR 识别错误;
  • 表格丢失;
  • 图片说明没有解析;
  • 标题层级错误;
  • Markdown 转换失败。

如果进入知识库的数据本身就是错误的,那么检索效果自然也不会理想。


第九章:企业级 RAG 的最佳实践

很多 RAG Demo 看起来都可以运行。

但真正进入企业生产环境后,通常还会增加很多能力。

例如:


① 文档解析(Document Parser)

生产环境不会直接读取 PDF通常需要:

  • OCR
  • 表格识别
  • 图片解析
  • 标题识别
  • 页眉页脚清理
  • Markdown 转换

保证进入 Chunk 的文本尽可能干净。


② Metadata 管理

除了文本外,每一个 Chunk 通常还保存:

  • 来源文档
  • 页码
  • 更新时间
  • 标签
  • 权限
  • 文档类型

这样Recall 后不仅能够返回正文,还能返回:

来源:《员工手册》第 32 页

增强答案可信度。


③ Hybrid Search

目前越来越多企业采用:

BM25+Vector SearchHybrid Recall

原因很简单。关键词擅长专有名词向量擅长语义。两者结合,通常优于单独使用。


④ 权限控制

企业知识库并不是所有人都能查看全部内容。

例如:

销售只能看销售文档研发只能看研发资料财务只能看财务制度

因此Recall 前通常会增加:Permission Filter。


⑤ 引用来源

越来越多企业要求答案必须包含出处。

例如:

来源:《部署手册》第 23 页

这样用户能够快速验证答案真实性。


⑥ 增量更新

企业知识每天都在变化因此通常不会重新构建全部向量。而是:

新增文档ChunkEmbedding写入 Vector DB

实现增量更新。


第十章:RAG 与 Agent、MCP 的关系

很多开发者学习到这里都会提出一个问题:

RAG、Agent、MCP 到底是什么关系?

其实,它们解决的是三个完全不同的问题。

RAG负责:找到知识。

例如:

知识库Recall相关资料

MCP负责:连接系统。

例如:

  • 数据库
  • GitHub
  • Jira
  • 文件系统
  • 企业 API

MCP 解决的是:Agent 如何访问外部世界。


Agent负责:组织整个任务。

例如:

用户:生成本周销售报告。AgentRAG查制度MCP查数据库LLM生成报告

因此三者关系可以总结为:

RAG 提供知识,MCP 提供能力,Agent 负责组织整个流程。


总结:RAG 是企业 AI 的知识底座

很多人把 RAG 理解成"Embedding + 向量数据库。",实际上,它远比这复杂。一个真正可用于生产环境的 RAG,更像是一条完整的数据处理流水线。从文档进入系统开始,到最终生成答案,需要依次经历:

Document ParserChunkEmbeddingVector DatabaseRecallRerankPromptLLMAnswer

一个环节,都可能影响最终回答质量。因此,企业真正需要优化的,从来不是某一个组件,而是整条链路。未来,随着 Agent、Skill、MCP 等技术的发展,RAG 也将逐渐从一个独立能力,演变为 Agent 获取企业知识的重要基础设施。可以说:

如果说大模型决定了 AI 的思考能力,那么 RAG 决定了 AI 是否拥有企业真正需要的知识。

理解 RAG,并不仅仅是理解一种检索技术,更是在理解企业 AI 应用落地过程中最重要的一块基础设施。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-30 09:20:43 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/817589.html
  2. 运行时间 : 0.220978s [ 吞吐率:4.53req/s ] 内存消耗:4,794.23kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=b62c8e320523764aa8f64a1def344b6f
  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.000841s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000961s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000344s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000276s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000619s ]
  6. SELECT * FROM `set` [ RunTime:0.000233s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000706s ]
  8. SELECT * FROM `article` WHERE `id` = 817589 LIMIT 1 [ RunTime:0.004085s ]
  9. UPDATE `article` SET `lasttime` = 1782782443 WHERE `id` = 817589 [ RunTime:0.000956s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000345s ]
  11. SELECT * FROM `article` WHERE `id` < 817589 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000661s ]
  12. SELECT * FROM `article` WHERE `id` > 817589 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000431s ]
  13. SELECT * FROM `article` WHERE `id` < 817589 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004814s ]
  14. SELECT * FROM `article` WHERE `id` < 817589 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.013718s ]
  15. SELECT * FROM `article` WHERE `id` < 817589 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.048274s ]
0.224888s