> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.alephant.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.alephant.io/_mcp/server.

# 数据流

> 了解内容如何经过连接器索引、OpenSearch 检索与索引迁移。

OpenCore 将来源访问、文档处理、OpenSearch 索引与查询时检索分成不同边界。你可以据此判断数据存储位置、控制措施的作用环节，以及外部模型提供商何时可能接收内容。

## 运行时边界

| 边界         | 处理的数据                             | 治理责任                       |
| ---------- | --------------------------------- | -------------------------- |
| 来源系统与连接器   | 来源记录及连接器特定的访问上下文                  | 将连接器凭证与来源范围限制在已获准采集的内容内。   |
| 处理 Worker  | 已拉取内容、解析文本、分块、嵌入及可选的增强内容          | 管控已配置的解析、嵌入、视觉与上下文检索功能。    |
| 关系型元数据     | 连接器配置、索引尝试、索引设置、共享引用与状态           | 保护管理访问，并按部署策略保留运维记录。       |
| OpenSearch | 可搜索分块、向量、公开或 ACL 元数据、筛选元数据及可选租户标识 | 将搜索服务、网络路径和当前索引作为应用数据加以保护。 |

OpenSearch 文档不包含连接器凭证，但会包含可搜索文本和访问相关元数据。因此，OpenSearch 快照应按应用内容治理，而不能视为可随意丢弃的缓存。

## 索引流程

#### 拉取已批准的来源内容

连接器在其已配置的来源与身份范围内读取记录。来源端权限决定连接器能拉取什么；OpenCore 无法在连接器配置提供的范围之外自行推断出更窄的来源范围。

#### 解析并拆分内容

Worker 提取受支持的内容，将其拆分为可搜索分块，并在相应值可用时附加来源、时间、层级、文档集、项目与共享元数据。

#### 执行已配置的增强

OpenCore 为语义或混合检索创建嵌入。只有在配置了相应可选功能和模型时，上下文检索与图片描述才可能把相关内容发送给选定的模型提供商。

#### 写入 OpenSearch 索引

当前索引接收分块文本、向量、来源链接、筛选条件、公开或 ACL 标记以及其他检索元数据。索引状态与可搜索文档分开记录。

## 查询流程

#### 授权请求

调用端点先验证请求者身份，并在检索前确定其角色、令牌范围、租户范围与资源上下文。

#### 准备检索

关键词检索使用查询文本。语义与混合检索还会使用当前索引设置对查询进行嵌入。

#### 搜索当前索引

OpenSearch 在当前索引上执行检索查询，并应用调用方提供的筛选条件。具备权限感知的检索会组合公开内容与匹配请求者的 ACL 条目。

#### 返回受治理的上下文

检索层向调用方返回已经筛选的分块。随后，聊天或 Agent 工作流可根据选定流程与已配置的模型提供商，将这些分块纳入模型请求。

只有当检索调用方提供访问控制范围时，OpenSearch 才会应用 ACL 筛选。端点授权与租户范围仍然不可缺少；搜索元数据不能替代其中任何一项控制。

## 查询时筛选

| 筛选条件                | 生效时机       | 边界                        |
| ------------------- | ---------- | ------------------------- |
| 公开或 ACL 可见性         | 具备权限感知的检索  | 匹配公开分块，或匹配为请求者提供的 ACL 条目。 |
| 租户                  | 多租户部署      | 将检索限制在当前租户。               |
| 来源、标签、文档集、项目或 Agent | 调用方选择这些范围时 | 将候选结果限制在请求的知识边界内。         |
| 时间、隐藏状态、文档、分块或层级    | 工作流提供这些值时  | 缩小运维或内容级候选范围。             |

这些筛选条件以限制方式组合。审计访问边界时，应同时核验调用方构建的筛选条件与 OpenSearch 映射。

## 重建索引与 port 生命周期

更改嵌入或上下文检索设置会创建未来 OpenSearch 索引。当前实现会从现有索引 port 已存储的分块，重新计算所需的增强内容或嵌入，再将结果写入未来索引；它不会通过连接器重新拉取每条来源记录。

| 策略         | 提升触发条件                                | 查询行为                                        |
| ---------- | ------------------------------------- | ------------------------------------------- |
| 所有连接器重建后切换 | 活跃或暂停且可索引的连接器所需 port 全部成功，并且延迟元数据工作归零 | 提升前，现有索引继续服务查询。                             |
| 活跃连接器重建后切换 | 活跃连接器所需 port 全部成功，并且延迟元数据工作归零         | 提升前，现有索引继续服务查询。                             |
| 重建前切换      | 管理员明确选择立即切换，并且未来索引已创建                 | 未来索引会立即成为当前索引，再由后台 port 填充，因此回填期间搜索结果可能不完整。 |

当前后端的**重建前切换**不会清空 OpenSearch 语料。它会提升未来索引，再通过 port 流程执行回填。只有在可接受临时搜索缺口时才应使用此策略，并且在其回填完成前不要发起下一次模型变更。

## 取消与并发变更

port 使用仅创建写入，避免目标索引中较新的写入被较旧的复制分块覆盖。它还会在复制期间检查已删除文档；存在次要索引时，元数据更新会同时应用于两个索引。

取消待处理变更会终止其未来索引工作、停止对应 port、将该搜索设置标记为历史状态，并保留或恢复此前的当前设置。取消操作不承诺立即删除每一个物理 OpenSearch 索引。

## 条件与运维

| 条件                  | 影响                    | 运维检查                                 |
| ------------------- | --------------------- | ------------------------------------ |
| 已禁用 OpenSearch 索引   | 连接器索引与向量检索不可用         | 在开放索引设置或连接器工作流前确认部署模式。               |
| OpenSearch 不可用或配置错误 | 索引、迁移与检索可能失败          | 在不暴露凭证的前提下，验证连接性、身份验证、TLS、容量与索引健康状态。 |
| 已启用上下文检索或图片处理       | 选定的模型提供商可能接收文档内容以执行增强 | 启用功能前审查提供商的数据处理方式与模型配置。              |
| 已启用多租户模式            | 已索引分块与查询均携带租户边界       | 使用来自不同租户的代表性账号验证租户筛选。                |

## 验证

1. 索引一份代表性文档，确认其可搜索分块携带预期的来源、可见性与筛选元数据。
2. 分别以目标成员和共享范围外账号查询，同时验证端点授权与返回的 OpenSearch 结果。
3. 发起一次非立即切换的模型变更，确认在全部所需 port 与延迟元数据工作完成前，查询继续使用现有索引。
4. 如需测试立即切换，确认提升发生在回填之前、后端没有报告清空步骤，并且结果覆盖范围会随 port 完成而扩大。
5. 取消一次测试迁移，确认此前的当前设置仍可使用，并且立即切换回填待完成时不能启动第二次迁移。

## 相关页面

* [连接器与索引](/opencore/knowledge/connectors)说明来源配置与连接器状态。
* [索引设置](/opencore/knowledge/index-settings)说明嵌入与上下文检索控制。
* [权限迁移](/opencore/governance/permissions-migration)区分当前授权行为与未来迁移目标。