原始文档元数据metadata

目录

[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:文档是什么、从哪来、属于谁、能不能用

相关推荐
lUie INGA20 小时前
在2023idea中如何创建SpringBoot
java·spring boot·后端
空中海20 小时前
第七章:vue工程化与构建工具
前端·javascript·vue.js
geBR OTTE20 小时前
SpringBoot中整合ONLYOFFICE在线编辑
java·spring boot·后端
Porunarufu20 小时前
博客系统UI自动化测试报告
java
zhensherlock20 小时前
Protocol Launcher 系列:Trello 看板管理的协议自动化
前端·javascript·typescript·node.js·自动化·github·js
zhuà!20 小时前
element的el-form提交校验没反应问题
前端·elementui
龙猫里的小梅啊21 小时前
CSS(一)CSS基础语法与样式引入
前端·css
小码哥_常21 小时前
从0到1,开启Android音视频开发之旅
前端
渔舟小调21 小时前
P19 | 前端加密通信层 pikachuNetwork.js 完整实现
开发语言·前端·javascript
qq_120840937121 小时前
Three.js 工程向:Draw Call 预算治理与渲染批处理实践
前端·javascript