This topic describes the limits on search indexes.
Index limits
The following table describes the limits on the number of rows, total size of data, number of fields, read and write rate, synchronization latency, and Nested fields in a search index, and the limits on the fields in the data table for which the search index is created.
Item | Limit | Description |
Number of search indexes | None | We recommend that you create only one search index that contains all fields that you want to retrieve. |
Number of rows | 100 billion | If your business requirements are not met due to the limit, submit a ticket. |
Total size | 100 TB | If your business requirements are not met due to the limit, submit a ticket. |
Number of fields in a search index | 1000 | None |
Read or write rate | 50,000 rows/s |
If your business requirements are not met due to the limit, submit a ticket. |
Synchronization latency | 3 seconds |
|
Array length | 256 | The maximum number of elements in an array. |
Nested field | The name of a Nested field must be unique in a search index. |
|
Vector field | The name of a Vector field must be unique in a search index. |
|
Total length of values in all primary key columns in the data table for which a search index is created | 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 in the data table for which a search index is created | 1,000 bytes | To index a primary key column of the String type, the column value cannot exceed 1,000 bytes in length. |
Length of the value in an attribute column of the String type when you want to index the column as Keyword | 4 KB | None |
Length of the value in an attribute column of the String type when 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 and the value of the Text field exceeds 1,024 characters in length, Tablestore truncates and discards the excess characters, and tokenizes only the first 1,024 characters. |
Query limits
Search operation
The following table describes the limits when you call the Search operation to query and analyze data.
Category | Item | Limit | Description |
General limits | offset+limit | 100000 |
|
timeout | 10 seconds | None | |
CU | None | None | |
QPS | 100,000 | The upper limit for lightweight transaction processing is 100,000 queries per second (QPS). If your business requirements are not met due to the limit, submit a ticket. | |
Number of query methods that are specified in a Search call | 1,024 | Query performance is compromised when complex nested queries are specified in a Search operation. We recommend that you simplify the queries. | |
Terms query | Number of terms | 1,024 | You can specify up to 1,024 terms in a terms query. |
Wildcard query | Length of a query string | 32 characters | A query string in a wildcard query can be up to 32 characters in length. |
Prefix query | Length of a query string | 1,000 character | A query string in a prefix query can be up to 1,000 characters in length. |
Full-text search | Number of highlighted text fragments | 500 | The total number of highlighted text fragments that can be returned when the conditions specified by the inner_hits and highlight parameters are met. |
Number of fields for which you can enable the highlight feature | 10 | You can enable the highlight feature for up to 10 fields in a query. | |
k-nearest neighbors (KNN) vector query | Top K query results that have the highest similarity to the vector that you want to query in a KNN vector query | 1000 | Top 1,000 query results that have the highest similarity to the vector that you want to query can be returned in a KNN vector query. |
Aggregation and GroupBy | Number of Aggregations at the same level | 5 | The number of Aggregations is recalculated each time you add a new Aggregation to SubGroupBy. |
Number of GroupBys at the same level | 5 | The number of GroupBys is recalculated each time you add a new GroupBy to SubGroupBy. | |
Number of nested GroupBys | 3 | The root GroupBy is counted as a nested level. | |
Number of Filters in GroupByFilter | 10 | None | |
Number of groups returned by GroupByField | 2,000 | None | |
Number of internal sources of GroupByComposite | 32 | The maximum number of columns supported by a multi-column field group. | |
Number of Ranges in GroupByRange | 100 | None | |
Number of Ranges in GroupByGeodistance | 10 | None |
ParallelScan operation
The following table describes the limits when you call the ParallelScan operation to query data and export data in parallel.
Category | Item | Limit | Description |
General limits | offset+limit | Not supported |
|
CU | None | None | |
QPS | None | None | |
Parallel scan | Maximum number of parallel scan tasks in a ParallelScan call | Equal to the value of the MaxParallel parameter | You can call the ComputeSplits operation to obtain the value of the MaxParallel parameter. |
Valid time of the task (aliveTime) | 10 minutes | None | |
Maximum number of parallel scan tasks | 10 | Parallel scan tasks that have the same session ID and the same ScanQuery value are considered one task. For more information, see Parallel scan. |