Limits on the system
Item | Limit |
Number of clusters for each user | Not limited. |
Total number of documents for each user | Theoretically not limited. The value is calculated based on the storage capacity quota. |
Total number of page views (PVs) for each user | Theoretically not limited. The value is calculated based on the number of logical computing units (LCUs) that are available for the user. |
Character encoding system | UTF-8 is supported. |
Limits on clusters
Item | Limit | |
Cluster type | Shared cluster | Exclusive cluster |
Length of a cluster name | 30 characters | |
Length of a field name | 30 characters | |
Length of a sort expression name | 30 characters | |
Number of fields | 256 | 512 |
Length of a source table name | 16 characters | |
Length of an index field name | 64 characters | |
Number of fields of the INT type | 256 | |
Number of fields of the TIMESTAMP type | 4 | |
Number of fields of the GEO_POINT type | 2 | |
Number of fields of the LITERAL type. Fields of the LITERAL type cannot be used to create composite indexes. | 256 | |
Number of fields of the TEXT or SHORT_TEXT type | 32 | 64 |
Number of indexes for numerical analysis | 4 | 8 |
Number of composite indexes | 4 | 8 |
Number of fields in a composite index | 8 | |
Number of indexes that are created on fields of the INT type for numerical analysis | 4 | 8 |
Number of indexes that are created on fields of the GEO_POINT type for numerical analysis | 2 | |
Number of indexes that are created on fields of the TIMESTAMP type for numerical analysis | 4 | |
Number of indexes that are created on a single field of the TEXT or SHORT_TEXT type | 4 | 8 |
Number of indexes that are created on a single field of the LITERAL type | 256 | |
Number of indexes that are created on fields of the INT type for keyword analysis | 256 | |
Number of vector indexes | 0 | 2 |
Total number of data sources | 20 |
Limits on the storage-optimized exclusive clusters of OpenSearch High-performance Search Edition:
In a single cluster, the total number of tables cannot exceed eight.
The query analysis feature is not supported. Query results are not displayed.
Limits on fields
Item | Limit |
INT64 | -2^63 to 2^63-1 |
FLOAT | +/-3.40282e+038 |
DOUBLE | +/-1.79769e+308 |
LITERAL | A field of this type can be up to 65,535 bytes in length. |
TEXT | A field of this type can be up to 65,536 words in length. |
SHORT_TEXT | A field of this type can be up to 100 bytes in length. If a field exceeds 100 bytes in length, the field is truncated. |
LITERAL_ARRAY | A field of this type can be up to 65,535 bytes in length. Each built-in delimiter between field elements is 2 bytes in length. If a field exceeds 65,535 bytes in length, the field is truncated to the last complete element to fit within the maximum length. A large number of elements in a field of this type require high query performance of the system. We recommend that you construct each field with no more than 100 elements. |
INT_ARRAY, FLOAT_ARRAY, and DOUBLE_ARRAY | If fields of these types are configured as attribute fields, each field can contain up to 65,535 elements. We recommend that you construct each field with no more than 100 elements. |
Limits on sort expressions
Item | Limit |
Number of rough sort expressions | 30 |
Number of fine sort expressions | 30 |
Number of feature function items that can be set for each rough sort expression | 4 |
Limits on the search result summary
Item | Description | Limit |
Length of a segment | The maximum length of a summary. | 1 to 300 bytes |
Number of segments | The number of segments that are required in a search result summary. | 1 to 5 |
Limits on application-level data push
Item | Limit |
Maximum number of documents that you call the API to push each time | 1,000. To provide better performance, we recommend that you push 100 documents each time. We also recommend that you package the documents to be pushed. |
Maximum number of times that you call the API to push data per second | 500. If you have pushed data 500 times in a second, a new request fails, and the error message "rate exceeds app quota" is displayed. |
Maximum size of an API request | 2 MB. If the total data size of an API request exceeds 2 MB, the request fails, and the error message "rate exceeds app quota" is displayed. |
Maximum total data size of API requests per second | 2 MB. If the total data size of API requests in a second exceeds 2 MB, a new request fails, and the error message "rate exceeds app quota" is displayed. |
Maximum synchronization rate for incremental data in ApsaraDB RDS or PolarDB data sources | 2 MB/s. If the synchronization rate exceeds 2 MB/s, the system automatically limits the rate and delays the incremental data synchronization. |
Maximum size of a document | 1 MB. If the size of a document exceeds 1 MB, the document fails to be synchronized, and the error message "The total size of documents exceed" is displayed. |
Latency in incremental data synchronization | After a number of documents are pushed to OpenSearch, 99% of the documents can be searched in 1 second. 99.9% of the documents can be searched in 1 minute. |
Non-printable reserved characters that cannot be contained in data to be pushed
Code | Display format in Emacs or Vi |
"\x1E\n" | ^^ |
"\x1F\n" | ^_ |
"\x1C" | ^\ |
"\x1D" | ^] |
"\x03" | ^C |
If a value of a field includes the preceding non-printable characters, the record is not synchronized to an application.
Non-printable characters such as \u0002 and \u0003 are automatically converted to \t.
The engine supports the following character sets:
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])
Limits on searches
Item | Limit |
Maximum length of each clause, except filter clauses | 1 KB before encoding. If the length of a clause exceeds 1 KB, an error message is displayed, and the request is discarded. |
Maximum length of each filter clause | 4 KB before encoding. If the length of a filter clause exceeds 4 KB, an error message is displayed, and the request is discarded. |
Maximum number of results returned on one page for a single request | 500 |
Maximum number of results returned for a single search, including multiple requests for paged queries | 5,000 |
Maximum number of documents involved in rough sort | 1,000,000 |
Maximum number of documents involved in fine sort | Default value: 200 |
For traditional searches, the purpose is to retrieve the most matched results in the shortest period of time. Therefore, the number of documents that can be contained in results is limited. For example, the results of a search can contain up to 5,000 documents. However, in some scenarios, you may need more results for analysis. In this case, you can perform scroll queries to obtain more search results. For more information, see Scroll search.
If search requests have consumed all LCUs that are available for an application, new requests are discarded, and the error message "code:6015, message:Dropped by over compute resource quota" is displayed.
Limits on reindexing
Item | Limit |
Maximum synchronization rate | 20 MB/s |
Limits on SQL statements
Item | Limit | Category | Description |
DDL and DML | N/A | Not supported | |
Global memory | N/A | Not supported | The global memory is limited to prevent full data from being dispersed and returned in a sort. For example, if you execute the SELECT * FROM t ORDER BY id LIMIT 1000000000 statement, an out of memory (OOM) error occurs when the data volume exceeds the limit. |
Null value | N/A | Not supported | If null values are returned in the results of specific operations such as a LEFT JOIN operation, the null values are replaced with the specified default value. |
LIKE and RLIKE operators | N/A | Not supported | The LIKE and RLIKE operators cannot meet performance requirements if a large volume of data needs to be queried. We recommend that you use the QUERY function to query data. |
Data reshuffle | N/A | Not supported | You must design offline data distribution based on business scenarios and query modes. OpenSearch High-performance Search Edition does not support data reshuffle across shards. Limits are imposed when you join or aggregate multiple tables. If a query error occurs, we recommend that you analyze the query plan. |
User-defined function (UDF) name | N/A | Recommended | A UDF name cannot be the same as SQL keywords or reserved words. If a name conflict occurs, the UDF name must be escaped by using backticks (`). |
Table name and column name | N/A | Limits on the format | A table or column name cannot contain special characters. It must start with a letter, and can contain only letters, digits, and underscores (_). |
Statistical operator | Maximum number of keys: 5,000,000 Maximum memory usage: 512 MB | Limits on quantity | The limits are imposed on a single statistical operator. |
Default number of returned results | 100 | Limits on quantity | The outermost SQL statement does not contain a LIMIT clause. To prevent excessive data from being returned, the LIMIT 100 clause is added by default. |
Data of the ARRAY type | N/A | Limits on operations |
|
Dynamic parameters | N/A | Limits on operations | Only constants in expressions can be replaced. Field names and table names cannot be replaced. The LIMIT clause cannot be replaced. |
ORDER BY clause | N/A | Limits on operations | The ORDER BY clause must be used together with the LIMIT clause. |
UNION operator | N/A | Limits on operations |
|
Summary table query | N/A | Limits on operations | A summary table cannot be fully scanned. You must specify primary keys when you query the summary table. |
Child table query | N/A | Limits on operations | A child table is a multiset field. This field cannot be returned. Do not use the SELECT * clause when you query child tables. |
DATE or RANGE index query | N/A | Limits on operations | Equal signs (=) are not supported for queries. You can use the QUERY function, such as QUERY('time', '[1, 10]'). |
Attribute field | N/A | Limits on operations | By default, attributes are created for all fields in SQL statements. Data of the TEXT or SHORT_TEXT type cannot be calculated by using expressions. |
Constant string | N/A | N/A | 1. Constant strings in SQL statements must be enclosed in single quotation marks (' '). Example: SELECT 'abc' FROM t;. 2. If a constant string in an SQL statement contains single quotation marks ('), replace each single quotation mark (') with two single quotation marks (''). Examples: SELECT 'ab''c' FROM t; // The actual value of the string is ab'c. SELECT 'ab''''c' FROM t; // The actual value of the string is ab''c. 3. For more information about how to escape a string in dynamic parameters, see Dynamic parameters. |