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

相关推荐
啥都想学点2 小时前
pikachu靶场——SQL-Inject—1(Kali系统)
sql·网络安全
wefly20172 小时前
无需安装的 M3U8 在线播放器,快速实现 HLS 流预览与调试
java·开发语言·python·开发工具
恋猫de小郭2 小时前
Flutter 3.41 iOS 键盘负优化:一个代码洁癖引发的负优化
android·前端·flutter
胡楚昊2 小时前
XSS LAB通关笔记(1-16)
前端·笔记·xss
新晨4372 小时前
cursor轻松实现代码搬迁
前端·ai编程·cursor
We་ct2 小时前
LeetCode 211. 添加与搜索单词 - 数据结构设计:字典树+DFS解法详解
开发语言·前端·数据结构·算法·leetcode·typescript·深度优先
姓王者2 小时前
Astro 6 推出啦
前端
大傻^2 小时前
【OpenClaw -01】OpenClaw 安装部署指南:npm、Docker 与源码三种模式详解
前端·docker·npm
用户4445543654262 小时前
Android Toast消息受到Rom的影响
前端