This topic describes the limits on search indexes, including the limits on field mappings, limits on querying data by calling the Search and ParallelScan operations, limits on search index metrics such as the rate, total size, and row count, and regions in which the search index feature is available.
Limits on field mappings
The following table describes the limits on field mappings to consider when you create a search index, such as the limits on the field length, number of indexed fields, field types, nested types, and table fields.
Item | Maximum value | Description |
Number of indexed fields | 500 | The number of fields that can be indexed. |
Array length | 256 | The maximum number of elements in an array. |
Number of layers that can be nested in a query | 5 | Up to five levels can be nested. |
Number of child rows in a nested field | 256 | The maximum number of child rows in a nested field. |
Number of nested fields | 25 | The number of child fields that can be nested. |
Total length of values in all primary key columns | 1,000 bytes | The total length of values in all primary key columns in each row can be up to 1,000 bytes. |
Length of the value in a primary key column of the STRING type | 1,000 bytes | To index a primary key column of the STRING type, the value of the column cannot exceed 1,000 bytes in length. |
Length of the value in an attribute column of the STRING type if you want to index the column as KEYWORD | 4 KB | None. |
Length of the value in an attribute column of the STRING type if you want to index the column as TEXT | 2 MB | In most cases, the limit is the same as the length limit on an attribute column in a data table. When you perform fuzzy query based on fuzzy tokenization for a TEXT field, if the TEXT field value exceeds 1,024 characters in length, Tablestore truncates the excess characters and discards them, and only tokenizes the first 1,024 characters. |
Length of a query string for a wildcard query | 32 | The query string can be up to 32 characters in length. |
Length of a query string that contains a prefix | 1,000 bytes | The query string can be up to 1,000 characters in length. |
Limits on the Search operation
The following table describes the limits on calling the Search operation to perform data queries and aggregation.
Category | Item | Maximum value | Description |
General limits | offset+limit | 50000 | To increase the number of returned rows, configure the next_token parameter. |
limit | 100 | Default value: 10. Maximum value: 100.
| |
timeout | 10s | None. | |
CU | Unlimited. | None. | |
QPS | 100,000 |
| |
Number of query methods that are specified in a Search call | 1024 | If complex nested queries are specified in a Search call, query performance is compromised. We recommend that you simplify the query. | |
Aggregation | Number of Aggregation operations at the same level | 5 | The number of Aggregation operations is recalculated each time you add a new aggregation clause to a sub group. |
Number of GroupBy operations at the same level | 5 | The number of GroupBy operations is recalculated each time you add a new GroupBy clause to a sub group. | |
Number of layers that can be nested in a group | 3 | The root group is calculated as a nested layer. | |
Number of filters specified in a GroupByFilter operation | 10 | None. | |
Number of groups that are returned by each GroupByField operation | 2,000 | None. | |
Number of ranges that are specified in a GroupByRange operation | 100 | None. | |
Number of ranges that are specified in a GroupByGeodistance operation | 10 | None. |
Limits on the ParallelScan operation
The following table describes the limits on calling the ParallelScan operation to perform data queries and parallel scans.
Category | Item | Description |
General limits | offset+limit | When you use parallel scan, you cannot configure the offset and limit parameters. The results that are returned are displayed in chronological order. |
limit | The maximum value is 2,000. | |
CU | None. | |
QPS | None. | |
Maximum number of parallel tasks | The value of the MaxParallel parameter. You can call the ComputeSplits operation to obtain the value of the parameter. | |
Maximum number of parallel scan tasks | The maximum number of parallel scan tasks is 10. Parallel scan tasks that have the same session ID and same value of the ScanQuery parameter are considered one task. For more information, see Parallel scan. |
Limits on search index metrics
The following table describes the limits on search index metrics, such as the rate, synchronization latency, number of rows, and total size.
Item | Maximum value | Description |
Rate | 50,000 rows/s |
|
Synchronization latency | 3s |
|
Number of rows in an index | 100 billion | To increase the limit, submit a ticket. |
Total size | 100 TB | To increase the limit, submit a ticket. |
Other limits
The search index feature is available in the following regions: China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Ulanqab), China (Shenzhen), China (Guangzhou), China (Chengdu), China (Hong Kong), Singapore, Australia (Sydney), Malaysia (Kuala Lumpur), Indonesia (Jakarta), Japan (Tokyo), Germany (Frankfurt)., UK (London), US (Silicon Valley), US (Virginia), Thailand (Bangkok), India (Mumbai), SAU (Riyadh), and Philippines (Manila).
If your business requirements are not met due to the limit, submit a ticket on the Alibaba Cloud official website. When you submit a ticket, you must specify the limits and the limit values. You must also specify the scenarios in which you want to use the new limits and the requirements based on which you want to use the new limits. The requirements that you specify in the ticket are recorded for future development purposes.