目录
[1. 举个最直观的例子](#1. 举个最直观的例子)
[2. 为什么叫"原始"](#2. 为什么叫“原始”)
[3. 在 RAG / Agent 里它有什么用](#3. 在 RAG / Agent 里它有什么用)
[4. 它和 chunk metadata 有什么区别](#4. 它和 chunk metadata 有什么区别)
[chunk metadata](#chunk metadata)
[5. 在数据库里一般怎么存](#5. 在数据库里一般怎么存)
[6. 你做 Agent 项目时可以怎么理解](#6. 你做 Agent 项目时可以怎么理解)
[7. 你可以先这样记](#7. 你可以先这样记)
"原始文档元数据"就是:
描述一篇文档本身的信息,但不是文档正文内容。
你可以把它理解成:
文档内容是"书里的文字",元数据是"这本书的封面信息、标签、编号、来源说明"。
1. 举个最直观的例子
假设你有一篇产业报告:
文档正文内容:
2025 年中国新能源车产业链进入新一轮产能调整阶段......
这部分是真正的文本内容。
而它对应的原始文档元数据可能是:
{
"title": "2025中国新能源车产业链研究报告",
"source": "某证券研究所",
"source_type": "pdf",
"author": "研究团队A",
"published_at": "2025-11-01",
"industry": "新能源车",
"document_status": "active",
"url": "https://xxx.com/report.pdf"
}
这些信息就叫原始文档元数据。
2. 为什么叫"原始"
因为它是文档这一层自带的基础属性,还没有切 chunk、还没做 embedding、还没做检索加工。
也就是:
-
文档刚入库时就有的描述信息
-
用来标识"这篇文档是谁、从哪来、属于什么类型"
所以叫"原始文档元数据"。
3. 在 RAG / Agent 里它有什么用
它非常有用,不是装饰品。
第一种用途:做过滤
比如用户问:
只看最近三个月的医药行业报告
你就可以根据元数据过滤:
-
industry = 医药
-
published_at >= 某个日期
第二种用途:做引用
回答时你可以告诉用户:
-
来源:某证券研究所
-
发布时间:2025-11-01
-
文档标题:xxx
这比"我从某个神秘文本里看出来的"靠谱多了。
第三种用途:做排序
比如你可以让系统优先选择:
-
更新时间更近的文档
-
来源更权威的文档
-
状态为 active 的文档
第四种用途:做权限或状态控制
例如:
-
document_status = active -
document_status = archived -
document_status = deleted
这样系统就知道哪些文档还能检索,哪些不能用了。
4. 它和 chunk metadata 有什么区别
这个区别很关键。
文档元数据
描述的是整篇文档
例如:
-
标题
-
作者
-
来源
-
发布时间
-
行业
-
文档状态
chunk metadata
描述的是某个切片
例如:
-
第几个 chunk
-
这一段在第几页
-
这一段属于哪个章节
-
字符范围/段落范围
比如:
{
"document_id": 12,
"chunk_index": 5,
"page": 8,
"section_title": "市场空间分析"
}
所以:
-
原始文档元数据 = 文档级信息
-
chunk metadata = 切片级信息
5. 在数据库里一般怎么存
通常在 documents 表里放原始文档元数据。
比如:
CREATE TABLE documents (
id BIGSERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
source VARCHAR(255),
source_type VARCHAR(50),
document_status VARCHAR(50),
metadata JSONB,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
其中这个 metadata JSONB 就常用来存灵活的原始文档元数据,比如:
{
"author": "研究团队A",
"published_at": "2025-11-01",
"industry": "新能源车",
"region": "中国"
}
6. 你做 Agent 项目时可以怎么理解
一句很务实的话:
正文是给模型看的,元数据是给系统管控和检索策略看的。
模型主要读正文内容。
系统主要利用元数据来:
-
过滤
-
排序
-
追踪来源
-
生成引用
-
做权限控制
所以元数据像文档的"身份证 + 标签系统"。
7. 你可以先这样记
最简单的记忆法:
-
content:文档写了什么 -
metadata:文档是什么、从哪来、属于谁、能不能用