以下按使用对象汇总使用限制与兼容性差异,供选型和上线前核对;各接口参数表同时列出对应的取值范围。产品版本、Elasticsearch API 兼容范围和推荐客户端版本见版本与兼容性。已开放的标准 API 按声明的版本兼容范围使用;涉及未明确说明的兼容性或迁移场景时,请提交工单确认。
与传统有状态 Elasticsearch 的差异
Agent 引擎版采用无状态架构。迁移时重点核对以下功能、索引设置和运维方式;其他 API 按版本与兼容性使用,接口参数限制以对应 API Reference 为准。
|
传统有状态 Elasticsearch 能力或配置 |
Agent 引擎版的差异 |
建议 |
|
Index Lifecycle Management(ILM)、 |
不支持 ILM 策略管理和执行,相关 API 未注册, |
日志和时序数据使用 Data Stream Lifecycle 管理保留期;普通索引通过外部调度任务调用 Rollover 和 Delete Index。 |
|
hot、warm、cold、frozen 数据层级,以及基于 |
不使用传统 |
使用对象存储保存持久数据,分别规划索引节点和查询节点;按业务保留策略管理历史数据。 |
|
Watcher |
不支持 Watcher 的触发、条件和通知执行链,相关 API 未注册。 |
使用云监控、日志服务(SLS)告警、企业告警平台或外部定时任务。 |
|
旧版 Stack Monitoring 本地采集链路 |
不支持依赖 |
使用控制台监控和日志;需要应用侧观测时,使用集群健康和节点统计 API,见 API 参考。 |
|
Rollup Job 和 |
不支持旧 Rollup 任务及其查询接口,相关 API 未注册。 |
根据数据类型选择 Downsample、Transform 或外部聚合任务。 |
|
Searchable Snapshots、快照挂载和 frozen 阶段转换 |
不支持 Searchable Snapshot 的挂载语义,挂载接口未注册,也不能沿用 frozen tier 流程。 |
在线数据直接使用对象存储原生索引。全部 Collection 的备份恢复由技术支持协助完成,见Collection 备份与恢复。 |
|
|
不会按节点数量自动扩展查询副本。启用后,将副本数设为 |
显式配置 |
|
|
不支持将 Translog durability 设置为 |
通过 Bulk 大小、并发、刷新频率、分片规划和索引节点容量优化写入吞吐。 |
|
|
Agent 引擎版默认 |
线上业务保留自动刷新,建议间隔不低于 |
|
|
不作为写入链路的副本等待条件。即使设置为 |
检查写入响应,等待后台刷新后用实际查询验证可见性。确需同步等待时,按 Refresh 与查询可见性 使用 |
上表中标注为不适用的索引或集群设置,修改请求可能返回 HTTP 200,且回读时能看到新值,请勿据此判断功能已经启用。
此外,无状态架构中的副本主要用于查询和缓存,不等同于传统有状态 Elasticsearch 中可晋升为主分片的持久化副本。查询副本数量和查询节点共同决定查询容量与可用性;持久数据由对象存储保存,不能用增加副本数替代备份策略。
索引与向量字段
以下约束适用于普通索引和 Collection 中的向量字段。
|
约束项 |
限制 |
|
|
|
|
DiskBBQ 的 |
0~100;查询值覆盖 Mapping 默认值,包括显式设为 |
字段配置与查询参数见向量字段与 KNN。
Collection 与 Slice
名称和批量上限
|
约束项 |
限制 |
|
Collection 名 |
遵循 Elasticsearch 索引和 Alias 命名规则,必须为小写,长度不超过 128 字节,不能使用系统保留的 |
|
Slice 名 |
长度为 1~128 个字符;首尾必须为英文字母或数字;中间建议使用英文字母、数字、 |
|
单次 Search 的 Slice 数 |
最多 1024 个。通过 URL 传参时,还受 HTTP 请求行长度限制,默认 |
|
单次 Bulk 自动创建的缺失 Slice 数 |
最多 512 个,已存在的 Slice 不计入。 |
|
单次批量注册的 Slice 数 |
最多 20480 个,且请求内不能重名。 |
|
列出 Slice API 的 |
1~10000。 |
|
Slice CAT 返回行数 |
最多 10000 行,不提供分页。 |
|
Collection 与 Backing CAT 的展开范围 |
超过 10000 个 Backing 时返回 HTTP 400。 |
|
删除 Slice 的 |
必须为有限值且不超过 5 分钟。 |
|
预创建 Backing 的 |
1~99999,且只能在查询参数或请求体中提供一次。 |
Slice CAT 的实际可处理上限还受系统管理元数据索引的 index.max_result_window、目标 Backing 的 index.max_terms_count 和 search.max_buckets 约束;调低这些设置会进一步收紧查询范围或使请求失败。
API 支持范围
-
DLS/FLS 不能用于 Collection。带 DLS/FLS 限制的角色可以创建成功,但该角色的用户访问 Collection 时会返回 HTTP 403。
-
Collection 不支持跨集群搜索(CCS)。
remote:collection形式的目标不会被识别为 Collection,通常表现为远端索引不存在,而不是明确的“不支持 CCS”提示。 -
Point in Time(PIT)不能直接以 Collection 为目标,请求返回 HTTP 400;该限制与是否使用 Branch 无关。
-
_graph/explore和_termvectors不能以 Collection 为目标,_mtermvectors也不能包含 Collection item。 -
Collection 不支持已废弃的
_knn_search,请使用_search请求中的knn。 -
Explain 只能指定单个 Slice,不支持逗号列表或
_slice=_all,也不适用于省略_slice时查询全部 Slice 的集群设置。 -
不能对 Collection 或 Backing Index 直接使用原生 Delete Index、Close/Open、Resize 或 Index Blocks。Collection 生命周期必须使用 Collection API 管理。
-
Collection Reindex 不支持 script;以 Collection 为目标时不支持显式 ingest pipeline;远程源端不支持
source._slice。 -
Slice CAT 不支持按 Slice 统计存储大小或按 Slice 存储大小排序;需要统计存储大小时,使用 CAT 观测 中的 Backing 统计。
sliced postings
index.sliced_postings.enabled 只能在创建 Collection 时配置,创建后不能修改。开启时,不支持 completion 字段和设置了 fielddata: true 的 text 字段;index.codec 仅支持 default、legacy_default、best_compression 或 legacy_best_compression。默认值和配置示例见优化指定 Slice 内的文本检索。
Collection Alias
-
同一个 Alias 不能混合普通索引和 Collection;Collection 成员必须使用相同的
slice_strategy,向量簇召回模式的成员还必须使用相同的向量维度。 -
不支持 Alias
filter、routing、index_routing、search_routing、is_hidden和remove_index。 -
单文档 GET 和 MGet 中的每个 item 必须唯一解析到一个 Collection,不能使用多成员 Alias;
is_write_index不会替单目标读取选择成员。
创建 Alias、指定写入目标与切换读写流量的操作见Collection Alias。
Copy Slice
|
约束项 |
限制 |
|
|
分别为 1~64 和 1~10000;不支持在运行中动态调整 |
|
复制范围 |
源、目标必须位于同一个 Collection,不能跨 Collection。 |
|
源数据表示 |
需要保留可重建文档的 |
|
业务切换 |
Copy 不提供原子切流,也不持续同步源端后续写入。配置了 |
Branch Slice(Beta)
source 和 target 必须属于同一个 Collection,共用 Mapping 和索引设置;target 必须使用新名称。两者位于同一 Backing 的同一分片,source 所在 Backing 的 index.routing_partition_size 必须为 1(默认值),大于 1 时不支持创建 Branch。
Branch 资源上限
以下是 Branch 的硬上限。达到上限时只拒绝新的 Branch 创建,已有 Branch 及其数据的读写继续服务。
|
约束项 |
限制 |
|
单个分支关系的继承层数 |
最多 8 层。超限的新建请求返回 HTTP 409,需等待 source 转为普通 Slice 后重试。 |
|
每个分片同时准备中的 Branch 数 |
最多 2 个。超限返回 HTTP 429。 |
|
每个分片的活动或正在创建的 Branch 数 |
最多 1024 个。超限返回 HTTP 429。 |
|
单个分片的分支元数据体积 |
新建请求预计使其超过 128 MiB 时返回 HTTP 409,且不会发布 target。 |
|
创建 Branch 的 |
必须为有限值。超时不代表创建已回滚。 |
后台自动转为普通 Slice 的触发条件(创建时长、被遮蔽的继承文档数、分支元数据体积)不是上限,达到条件不代表转换立即完成,未达到条件也不影响 target 正常读写。
当前不提供独立的 Branch 状态查询或完成回调,也不提供按单个 Branch 设置对象存储用量配额的能力。
Branch 在转为普通 Slice 前称为 Active Branch,单 Slice 读写可正常使用;查询范围、预热和统计行为需核对 Active 期间的行为差异。
向量簇召回
以下参数用于向量簇召回模式,与显式 _slice 名称列表的数量限制分别生效,不能相互替代。
|
参数 |
限制 |
|
|
1~4096;注册的中心向量和用于自动选片的查询向量都必须满足此维度。 |
|
|
1~10000,且不能大于 |
|
|
1~10000。默认 |
|
查询参数 |
省略或为 |
自动选择候选 Slice 需要请求中提供内联查询向量;配置 routing_field 后不支持 scripted update。具体的查询向量路径、显式选片与错误处理见自动选择候选 Slice。