(下)
层 | 返回什么 | 回答什么问题 |
|---|---|---|
节点级 | 整个节点对象(含摘要文本、评分) | 「哪个节点叫这个 / 跟这个有关」 |
内容级 | 正文片段 + 出处 + 评分 | 「哪段话说了这个」 |
概念锚点
节点级搜「东西」,内容级搜「字」。
节点级 | 内容级 | |
|---|---|---|
拿什么去比 | 节点的标题 / 摘要 | 正文被切成的片段 |
命中后给你 | 整份东西 | 那一段话本身 + 出处 |
类比 | 通讯录里按人名找 | 聊天记录里搜关键词 |
粒度 | 一份 | 一段 |
为什么「片段」是关键:一份长篇文档、一张几百行的表,若只按「整份」去匹配,任何具体词都很难命中;切成片段后,某个只在某一页出现的生僻词才能被捞出来。这也是文件型节点(PPT / Word / PDF)只能靠内容级找到的根本原因——它没有可匹配的正文标题。
节点类型 | 是否进检索索引 | 实测证据 |
|---|---|---|
doc | ✅ 是 | 检索命中正文原句 |
database | ✅ 是 | 命中后返回的是 CSV 化的表格文本 |
web(page) | ✅ 是 | 命中页面渲染文本 |
drive(含 PPT / Word / PDF) | ✅ 是 | 上传后约 5 分钟内即可检索,表格里的数字也能搜到 |
link | ❌ 否 | 隔 24 小时复测仍零命中——不是索引延迟,是压根不索引 |
link 的最终定位
它是给 AI 主动拉取用的(你说「帮我总结那个剪藏」,AI 去读正文),不是给检索用的。
⇒ 它有三个前提必须知道: ① 只有静态、服务端渲染的页面才抓得住(门户新闻 / 需登录 / 懒加载会卡住); ② 抓到的正文前端不展示全文(页面卡片永远只显示标题 + 摘要 + 跳转按钮); ③ 不进检索索引。
形态 | 实例 |
|---|---|
结构化片段(表格被拆成键值对) | 位号:xxx;所属装置:xxx;报警频次:198;… |
标题 + 正文片段 | 某月例会报告: ## 典型问题 1.… |
全文摘要片段(AI 概括) | 某月分析显示,总报警1848次,日均36.17次。… |
实务含义
文件型资料丢进资料库后,里面的表格数字也能被搜到(表格被转成键值串)。 对「月度分析报告」「台账」这类以表格为主的文件,这比本地文件夹强——本地搜索搜不到 PPT 内部。
用一篇约 7000 字的长文测不同位置的细节词:
细节词位置 | 命中? | 片段长度 |
|---|---|---|
开头约 300 字 | ✅ 是 | 912 |
深处约 3800 字 | ✅ 是 | 954 |
末尾约 6000 字 | ✅ 是 | 949 |
三个必须知道的限制
⇒ 推荐两段式:先检索缩小到片段,再读原文精确定位。
查询词 | 期望命中 | 实际返回 |
|---|---|---|
某个页面名 | 该页面节点 | ✅ 命中 |
某个数据表名 | 该表节点 | ❌ 返回的是引用它的页面 |
同一层级的其他节点名 | 同名节点 | ❌ 同上,都返回那个页面 |
某篇确实存在的文档标题 | 该文档 | ❌ 0 命中 |
某份文件的标题 | 该文件 | ❌ 0 命中——节点级完全搜不到文件型节点 |
结论
节点级召回窄、排序不稳、还搜不到文件型节点。 实际用起来以内容级为主力,节点级只当辅助。
坑 1 · 参数要传 JSON 数组字符串
--space-ids xxxxx → 解析失败
--space-ids ["xxxxx"] → 正常返回坑 2 · 封装脚本会「骗人」——要用底层接口交叉验证
同一个节点,两种问法结果不一致:封装脚本报「无命中」,底层接口同样条件返回 3 条。
⇒ 两者过滤口径不同。怀疑检索不到时,用底层接口再验一次,别只信封装脚本的一句「无命中」。
实测:对别人建的团队空间(自己只是「只读」角色)检索,命中了 3 条。说明只读角色能读、能检索,只是不能写。
读一篇文档,拿到的不是纯 Markdown,是组件化的块:
---
title: 测试文档
---
<Heading id="jPAyIMmmO9dzIzcvajpwRU" level="1">标题</Heading>
<Paragraph id="zoYbmp1dqXKzaTNMYQbl4V">
原始段落 A。
</Paragraph>要点
每个块有唯一 id ⇒ 修订的最小单位就是块,不是「整篇替换文本」。
这也解释了为什么「追加一段」不能简单追加文本——你得指明「插在哪个块 id 之后」。
直接编辑 | 审阅模式 | |
|---|---|---|
生效方式 | 立即落入正文 | 生成待审卡片,人接受后才生效 |
需要 summary | ❌ 禁止 | ✅ 必填(1–200 字) |
内容要求 | 最终正文 | 必须带差异标注(标明删了哪句、加了哪句) |
是否要带原文 | 否 | ✅ 必须带修改前的完整块内容,用于防丢校验 |
适用 | 人改 / AI 的追加类操作 | AI 提改动建议、待人批准 |
审阅模式的两道硬门槛(实测连撞两次)
提交后回读文档,会出现一张审阅卡,而目标段落的原文还在,只是里面嵌了差异标注:
<ReviewSummary>
<ReviewCard affectedBlockIds={[...]}
discussionId="..."
status="pending"
summary="建议改写第一节措辞" />
</ReviewSummary>
<Paragraph id="zoYbmp1dqXKzaTNMYQbl4V">
原始段落 A<Mark ar="delete">。</Mark><Mark ar="insert">——建议的改写。</Mark>
</Paragraph>一句话理解
审阅 = 正文不动,挂一张待批的卡。接受才替换,拒绝就撤销。
命中即停,别整块删了重建:
变化 | 动作 |
|---|---|
块内文字 / 行内样式 | 更新(保留块 id) |
同一层级内移动 | 移动 |
锚点前后新增 | 前插 / 后插 |
删除整块 | 删除 |
块类型变了 / 跨层级移动 / 代码源码变了 | 删除 + 重新插入 |
改文档标题(不是正文标题) | 专门的改标题动作,且只能一条、必须放末尾 |
场景 | 做法 |
|---|---|
全新独立修改 | 新建一张卡 |
整篇总评 / 跨章节 | 用「全局评审」类型 |
同一诉求继续补充修正 | 更新原卡(带上上一轮的讨论 id) |
待审块复用规则(重要)
回读时块上带审阅标识,说明它已挂卡。本轮再改这块,要复用原卡,禁止新建第二张卡,也别要求用户先处理旧卡。
另外:summary 里禁止写任何内部 ID,只写「改了什么 / 为什么改」。
实测观察:人在前端打开文档自己编辑,看不到任何修订标记,只能直接改;但右侧评论区的筛选下拉里有一项「仅 Agent 修订」。
通道 | 谁在用 | 前端表现 |
|---|---|---|
直接编辑 | 人(前端打字即此通道) | 立即落入正文,不留任何修订标记 |
审阅修订 | Agent(接口提交) | 挂待审卡,显示为「Agent 修订」,人点头才生效 |
一句话锚定
人改 = 直接改(无痕、即时);Agent 改 = 挂卡待审(可追、可控)。 前端看到的「修订」一词,专指 Agent 的待审修改。
前端不提供「人以审阅方式改」不是功能缺失,是职责划分——自己改自己点接受没有意义。
对「笔记归档」这类场景的直接推论
往笔记文档里追加内容属于「我替你写、写完就算」:
字段 | 管什么 | 取值 |
|---|---|---|
category | 空间性质 | personal 个人 / team 团队 |
role | 我在这个空间的权限 | owner / editor / reader |
一个容易忽略的点
team 空间不等于我有权限。 实测某个官方团队空间里,我的角色就是 reader——只能看。
实测成员表里有一条 uid 为空的记录。它不是某个具体的人,而是空间级默认权限——即「这个空间对所有人(或链接持有者)的默认档位」。
看权限先看这两条
① 我的角色是什么;② 有没有空 uid 的默认档。
实测:查某个页面节点的协作者,结果与它所在的空间完全一致 ⇒ 节点默认继承所在空间权限,没有单独设权限就是继承。
角色 | 读 | 检索 | 写(增改删 / 改名) | 发布 |
|---|---|---|---|---|
owner | ✅ | ✅ | ✅ | ✅ |
editor | ✅ | ✅ | ✅ | 需确认 |
reader | ✅ | ✅ | ❌ 硬拒 | ❌ |
方式 | 谁能看 | 要不要登录 |
|---|---|---|
① 加协作者(team 空间) | 指定的人,按角色 | 要 |
② 内部节点链接 | 自己 / 被授权者 | 要 |
③ 发布短链 | 任何拿到链接的人 | 不需要 |
判定口诀
给内部同事、要控制谁能改 → 加协作者 给外部 / 一次性、内容不敏感 → 发布短链 自己或已授权的人日常用 → 内部链接,不发布
一个安全的权限试探方法
想确认自己有没有写权限,不要用「能不能写」去试探——成功即破坏数据。
安全测法:用节点原样的标题去执行「改名」。成功也只是「改成它自己」,什么都不会变。
一句话
要「被访问」的进资料库,要「被计算」的留本地,涉密的哪儿都不进(资料库尤其不进)。
把全部接口的清单翻一遍,检索聚合相关关键词:
结论
没有分组、没有求和、没有公式、没有透视。 它能做的是「存 + 筛 + 排」,不是「算」。
场景 | 放哪 | 理由 |
|---|---|---|
台账原始数据(几万行、要跑比对脚本) | 留本地 | 要计算。放资料库里每次取还得拉回来算 |
台账里需要手机查看 / 需要被检索的那部分 | 可同步一份进 database | 但计算仍在本地做 |
报表、结论(算完的结果) | 进资料库 | 这是「被访问」的产物 |
一句话
拿资料库当「展示层和检索层」,不当「计算层」。 计算永远在本地,算完的产物进资料库。
三类内容不进资料库:
判据边界(重要,别过度脱敏)
看的是内容性质,不是「像不像商业信息」。
节点 | 强项 | 硬伤 |
|---|---|---|
folder | 归类 | 无 |
doc | 在线编辑、块级修订、进检索 | 无表格计算 |
database | 结构化、字段类型、筛选排序 | 无计算、建了删不掉 |
page/web | 发布、可视化、绑数据库 | 发布即公开 |
drive | 装文件、内容可检索(约 5 分钟) | 节点级搜不到、不能在线编辑 |
link | 存网页正文给 AI 读 | 动态页抓不动、不进索引、前端不展示全文 |
smh | — | 只读历史遗留,不能新建 |
1 · 创建 = 不可逆
没有删除表的接口、没有删除节点的接口。 字段和记录能删(内容是软的),表和节点删不掉(壳是硬的)。 ⇒ 建之前先想清楚。
2 · 发布 = 公开
发布短链实测免登录可访问。要分享给特定的人,用加协作者。
3 · 「存进去」不等于「搜得到」
类型 | 能否被内容级检索 |
|---|---|
doc / database / web / drive | ✅ |
link | ❌ 永不进索引 |
本节可带走的判据(L4 毕业三句)
文中所有「实测」「xx KB」「xx 个」这类数量,均来自某一台真实机器的快照,请当作方法示范而非通用阈值;真正通用的是判据与因果关系。
原创声明
本文系「当月光落下」原创,首发于腾讯云开发者社区。内容来自作者在实际使用中的逐条实测整理, 所有结论均有本机实机验证或真实接口调用支撑;文中出现的数量均为特定环境下的实测快照, 仅作方法示范,不作为通用阈值。
如需转载,请注明作者「当月光落下」及首发出处,未经许可不得用于商业用途。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。