系统相关
项 | 值 |
每个用户实例个数 | 不限制 |
每个用户doc总数 | 理论上不限制,具体根据配额存储容量计算 |
每个用户pv总数 | 理论上不限制,具体根据配额LCU峰值计算 |
支持系统字符编码 | UTF-8 |
实例相关
项 | 值 | |
集群规格 | 共享集群 | 独享集群 |
实例名长度 | 30字符 | |
字段名长度 | 30字符 | |
排序表达式名称长度 | 30字符 | |
字段个数 | 256个 | 512个 |
源表表名长度 | 16字符 | |
索引字段名 | 64字符 | |
INT类字段个数 | 256个 | |
TIMESTAMP类型的字段个数 | 4个 | |
GEO_POINT类型的字段个数 | 2个 | |
LITERAL字段个数(不支持创建为组合索引) | 256个 | |
TEXT、SHORT_TEXT类型字段个数 | 32个 | 64个 |
数值分析索引个数 | 4个 | 8个 |
组合索引个数 | 4个 | 8个 |
单个组合索引包含字段数 | 8个 | |
INT类型构建数值分析索引个数 | 4个 | 8个 |
GEO_POINT类型构建数值分析索引个数 | 2个 | |
TIMESTAMP类型构建数值类型索引个数 | 4个 | |
TEXT、SHORT_TEXT类型单字段索引个数 | 4个 | 8个 |
LITERAL类型单字段索引个数 | 256个 | |
INT类型构建关键字分析索引个数 | 256个 | |
向量索引个数 | 0个 | 2个 |
总数据源个数 | 20个 |
高性能检索版-独享存储型相关限制说明:
表总数不能超过系统最大限制8个;
不支持配置查询分析、搜索结果展示功能。
字段相关
项 | 值 |
INT64 | -2^63~2^63-1 |
FLOAT | +/-3.40282e+038 |
DOUBLE | +/-1.79769e+308 |
LITERAL | 65535个字节 |
TEXT | 65536个词 |
SHORT_TEXT | 100字节,超过后截断 |
LITERAL_ARRAY | 字段长度总体不能超过65535个字节(算上元素之间的2字节的系统内置分隔符),如果超过,则会截断到最大满足长度限制的最后一个完整元素为止。(性能消耗较大,推荐控制在100个元素内) |
INT_ARRAY、FLOAT_ARRAY、DOUBLE_ARRAY | 如果设置为属性字段,则限制是最多65535个元素(推荐控制在100个元素内) |
排序表达式
项 | 值 |
基础排序表达式条数 | 30个 |
业务排序表达式条数 | 30个 |
每个基础排序可设置的特征函数项 | 4个 |
搜索结果摘要
项 | 描述 | 取值范围 |
片段长度 | 表示摘要长度 | [1,300] 字节 |
片段数量 | 在摘要长度内需要几个片段 | [1,5] |
推送数据(应用级别)
项 | 值 |
API 每次推送总文档数上限 | 1000个,建议100个性能更好(建议打包推送) |
API 每秒推送总次数上限 | 500次,超出后本次请求将失败,并提示rate exceeds app quota |
API 每次请求总容量上限 | 2M/s,超出后本次请求将失败,并提示rate exceeds app quota |
API 每秒请求总容量上限 | 2M/s,超出后本次请求将失败,并提示rate exceeds app quota |
RDS/PolarDB增量同步速率上限 | 2M/s,超出后系统将自动限速,增量数据同步延迟 |
每条文档大小上限 | 1M,超出后该记录同步失败,并提示The total size of documents exceed |
增量处理时效性 | 99%的文档推送成功后可以在1秒内搜索到,99.9%在1分钟内 |
● 超过推送数据的上限会导致增量数据同步延迟;
● 已使用的存储容量若超出应用配额,系统将自动丢弃API推送数据的请求,扩容后需重新推送;
● 已使用的存储容量若超出应用配额,系统将自动停止同步RDS/PolarDB的增量消息,扩容后会自动从停止的时间点继续同步增量数据。
● 增量数据同步tps超过限制,会导致索引重建无法追上实时增量数据,从而导致索引重建一直无法完成;
● 规格为独享集群实例的应用可以适当调整推送数据的上限;
● 若配置了RDS/PolarDB数据源,并且同步方式选择自动同步,OpenSearch将尽力保障同步服务的稳定性但不保障同步的延迟,如果对同步延迟比较敏感的业务建议同步方式采用DTS数据订阅实例(DTS实时同步);
推送数据中不能包含下列系统保留不可见字符
编码 | (emacs/vi)中的显示形态 |
“\x1E\n” | ^^ |
“\x1F\n” | ^_ |
“\x1C” | ^\ |
“\x1D” | ^] |
“\x03” | ^C |
字段内容中若出现上述系统不支持的字符,该记录将不会同步至应用中;
不可见字符(如:\u0002、\u0003等)会被自动转换为\t;
目前引擎支持的字符集有限,如下:
CJK_1 (\xe2[\xba-\xbf][\x80-\xbf])
CJK_2 ([\xe3-\xe9][\x80-\xbf][\x80-\xbf])
FULLWIDTH_1 (\xef[\xbc-\xbe][\x80-\xbf])
FULLWIDTH_2 (\xef\xbf[\x80-\xaf])
搜索相关
项 | 值 |
每个子句(除filter)最大长度 | 编码前1k,超长后本次请求报错丢弃 |
filter子句最大长度 | 编码前4k,超长后本次请求报错丢弃 |
单次请求最多返回结果数(不分页) | 500 |
搜索返回的最大结果数(包括分页多次请求) | 5000 |
参与基础排序文档数 | 100万 |
参与业务排序文档数 | 默认200 |
传统搜索场景的主要目的是为了尽量短的时间内召回最符合的结果,所以对搜索结果进行了限制,例如 search方法最多只能召回5000条文档。在某些场景下需要提供更多的结果来进行分析工作,可以使用scroll方法来获取更多的结果
搜索请求若超出应用配额的LCU量,超出后的请求将被丢弃,并报错code:6015,message:Dropped by over compute resource quota
索引重建
项 | 值 |
同步速率上限 | 20MB/s |
SQL相关
限制项 | 最大值/限制条件 | 分类 | 说明 |
DDL/DML | N/A | 不支持 | |
全局内存限制 | N/A | 不支持 | 避免对全量数据排序打散并返回。如SELECT * FROM t ORER BY id LIMIT 1000000000。数据量过大时会发生OOM。 |
NULL类型 | N/A | 不支持 | 对Left Join等出现NULL类型的场景,会用默认值代替。 |
LIKE/RLIKE | N/A | 不支持 | LIKE/RLIKE在大数量场景下存在性能瓶颈。建议优先使用搜索方式(QUERY函数)。 |
数据重分布(Re-Shuffle) | N/A | 不支持 | 用户需要根据业务场景和查询模式设计好离线数据分布。引擎目前不支持跨分片的数据重分布,对于多表Join或复杂的Agg场景存在一定的限制。 用户查询出错时建议分析下查询计划。 |
UDF函数名 | N/A | 建议项 | 避免与SQL关键字/保留字重名。重名时需要通过反引号(`)转义。 |
表名/列名 | N/A | 格式限制 | 表名、列名中不能有特殊字符,以字母开头,且只能用英文小写字母(a-z)、英文大写字母(A-Z)、数字和下划线(_)。 |
统计算子 | 最大Key数量: 500W 最大内存使用: 512M | 数量限制 | 上述限制为单个统计算子。 |
默认返回结果数量 | 100 | 数量限制 | SQL最外层没有LIMIT子句,为了防止返回数据过多,默认会增加LIMIT 100。 |
数组类型 | N/A | 操作限制 |
|
动态参数 | N/A | 操作限制 | 只支持表达式中的常量替换。不支持替换字段名、表名。不支持替换LIMIT。 |
ORDER BY子句 | N/A | 操作限制 | 必须与LIMIT配对使用。 |
UNION | N/A | 操作限制 |
|
Summary表查询 | N/A | 操作限制 | Summary表目前不支持全表扫描,查询时必须包括PK等值条件。 |
子表查询 | N/A | 操作限制 | 子表内部表示为一个结构化类型(MultiSet)的字段,该字段不支持返回。查询子表时避免使用SELECT *操作。 |
DATE/RANGE索引查询 | N/A | 操作限制 | 目前不支持使用"="查询。可以通过QUERY函数查询,如QUERY('time', '[1, 10]')。 |
Attribute字段 | N/A | 操作限制 | SQL场景下默认所有字段均建attribute。TEXT、SHORT_TEXT不支持表达式计算。 |
常量字符串 | N/A | N/A | 1、SQL语句中的常量字符串需要在两边加单引号如:SELECT 'abc' FROM t; 2、SQL语句中的常量字符串如果自身包含了单引号,则每个单引号使用两个单引号来表示,如 SELECT 'ab''c' FROM t; // 字符串实际值为ab'c SELECT 'ab''''c' FROM t;// 字符串实际值为ab''c; 3、动态参数中字符串类型的转义问题建议参考doc; |