Search indexes in Tablestore have limits on row count, data size, field count, read/write rate, synchronization latency, and query parameters.
Index limits
The following table lists the limits on row count, data size, field count, read/write rate, synchronization latency, nested fields, and data table fields for a search index.
|
Item |
Value |
Description |
|
Number of search indexes |
No limit |
Create only one search index that contains all required fields. |
|
Number of rows |
1 trillion |
If your business requirements exceed the limit, please submit a ticket to contact us. |
|
Total size |
1 PB |
If your business requirements exceed the limit, please submit a ticket to contact us. |
|
Number of index fields |
1000 |
If your business requirements exceed the limit, please submit a ticket to contact us. |
|
Read and write rate |
100,000 rows/s |
If your business requirements exceed the limits, please submit a ticket to contact us. |
|
Synchronization latency |
3 seconds |
|
|
Array length |
256 |
The maximum number of elements in an array. |
|
Nested field limits |
Unique within the search index |
|
|
Vector field limits |
5 |
|
|
Total length of all primary key column values |
1,000 bytes |
The combined length of all primary key column values cannot exceed 1,000 bytes. |
|
Length of a String value in a primary key column |
1,000 bytes |
A String-type primary key column value cannot exceed 1,000 bytes when indexed. |
|
Length of a String value in an attribute column (indexed as Keyword) |
4 KB |
None. |
|
Length of a String value in an attribute column (indexed as FuzzyKeyword) |
2 KB |
None. |
|
Length of a String value in an attribute column (indexed as Text) |
2 MB |
Generally matches the attribute column length limit in the data table. When performing a fuzzy query on a Text field with fuzzy tokenization, only the first 1,024 characters are indexed. Content beyond this limit is truncated. |
Query limits
Search API
The following table lists the limits when querying, aggregating, and analyzing data with the Search API.
|
Category |
Item |
Value |
Description |
|
General limits |
offset+limit |
100000 |
|
|
timeout |
10 seconds |
None. |
|
|
CU |
No limit |
None. |
|
|
QPS |
100,000 |
For lightweight transaction processing (TP) queries, the QPS upper limit is 100,000. If your business requirements exceed the limit, please submit a ticket to contact us. |
|
|
Number of queries in a single Search request |
1,024 |
Overly complex nested queries reduce performance. Simplify queries for better efficiency. |
|
|
Terms query |
Number of search terms |
1,024 |
A terms query supports a maximum of 1,024 search terms. |
|
Wildcard query |
Search query length |
32 characters |
The search query for a WildcardQuery cannot exceed 32 characters. |
|
Prefix query |
Search query length |
1,000 characters |
The search query for a PrefixQuery cannot exceed 1,000 characters. |
|
Full-text search |
Total number of highlighted fragments |
500 |
Maximum total highlighted fragments across all inner_hits and highlight results in a single request. |
|
Number of highlighted fields |
10 |
Highlight parameters can be specified for up to 10 fields. |
|
|
Vector search |
Number of top K rows returned |
1,000 |
A KnnVectorQuery returns at most the top 1,000 rows. |
|
Aggregation |
Number of Aggregations at the same level |
32 |
The count resets to 0 when an Aggregation is added to a SubGroupBy. |
|
Number of GroupBys at the same level |
5 |
The count resets to 0 when a GroupBy is added to a SubGroupBy. |
|
|
GroupBy nesting levels |
3 |
The level count includes the GroupBy itself. Maximum nesting depth is 3. |
|
|
Number of Filters in GroupByFilter |
10 |
None. |
|
|
Number of groups returned by GroupByField |
2,000 |
None. |
|
|
Number of internal sources in GroupByComposite |
32 |
Maximum number of columns for multi-column grouping. |
|
|
Number of Ranges in GroupByRange |
100 |
None. |
|
|
Number of Ranges in GroupByGeodistance |
10 |
None. |
ParallelScan API
The following table lists the limits when querying data and performing parallel scans with the ParallelScan API.
|
Category |
Item |
Value |
Description |
|
General limits |
offset+limit |
Not supported |
|
|
CU |
No limit |
None. |
|
|
QPS |
No limit |
None. |
|
|
Parallel data export |
Maximum concurrency |
Equal to the MaxParallel value |
Determined by the MaxParallel value returned by the ComputeSplits API. |
|
Task validity period (aliveTime) |
10 minutes |
None. |
|
|
Concurrent ParallelScan tasks |
10 |
Concurrent tasks that have the same session ID and ScanQuery are considered a single task. For more information, see parallel scan. |