All Products
Search
Document Center

Tablestore:Term query

Last Updated:Apr 29, 2026

Use a term query to find rows whose field values exactly match a specified keyword. For TEXT fields, Tablestore tokenizes the field value and matches each token against the keyword — if any token matches, the row is returned. The keyword itself is not tokenized.

Prerequisites

Parameters

Parameter

Description

query_type

The query type. Set to TermQuery.

field_name

The name of the field to query.

term

The keyword to match against field values. The keyword is not tokenized — it is matched as a whole.

For TEXT fields, Tablestore tokenizes the field value and checks each token against the keyword. A row is returned if any token exactly matches.

For example, if a TEXT field contains "tablestore is cool", the value is tokenized into "tablestore", "is", and "cool". Querying for "tablestore", "is", or "cool" returns the row.

table_name

The name of the data table.

index_name

The name of the search index.

limit

The maximum number of rows to return.

Set to 0 to get only the row count without returning row data.

get_total_count

Specifies whether to return the total number of matching rows. Default: false.

Setting this to true reduces query performance.

columns_to_get

The columns to return for each matching row. Configure return_type and column_names as needed.

  • ColumnReturnType.SPECIFIED: returns only the columns listed in column_names.

  • ColumnReturnType.ALL: returns all columns.

  • ColumnReturnType.NONE: returns only the primary key columns.

Examples

The following examples query rows where the Col_Keyword field exactly matches "tablestore".

  • Tablestore SDK for Python V5.2.1 or later

    SDK for Python V5.2.1 and later returns a SearchResponse object by default. The following example shows a basic term query:

    query = TermQuery('Col_Keyword', 'tablestore')
    search_response = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    )
    print('request_id : %s' % search_response.request_id)
    print('is_all_succeed : %s' % search_response.is_all_succeed)
    print('total_count : %s' % search_response.total_count)
    print('rows : %s' % search_response.rows)
    
    # For deep pagination, use next_token — it has no limit on pagination depth.
    # all_rows = []
    # next_token = None
    # # first round
    # search_response = client.search(
    #     '<TABLE_NAME>', '<SEARCH_INDEX_NAME>',
    #     SearchQuery(query, next_token=next_token, limit=100, get_total_count=True),
    #     columns_to_get=ColumnsToGet(return_type=ColumnReturnType.ALL))
    # all_rows.extend(search_response.rows)
    # 
    # # loop
    # while search_response.next_token:
    #     search_response = client.search(
    #         '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
    #         SearchQuery(query, next_token=search_response.next_token, limit=100, get_total_count=True),
    #         columns_to_get=ColumnsToGet(return_type=ColumnReturnType.ALL))
    #     all_rows.extend(search_response.rows)
    # print('Total rows:%s' % len(all_rows))

    To get results as a Tuple instead, call .v1_response():

    query = TermQuery('Col_Keyword', 'tablestore')
    rows, next_token, total_count, is_all_succeed, agg_results, group_by_results = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    ).v1_response()
  • Tablestore SDK for Python earlier than 5.2.1

    SDK for Python versions earlier than 5.2.1 return results as a Tuple by default:

    query = TermQuery('Col_Keyword', 'tablestore')
    rows, next_token, total_count, is_all_succeed = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    )

FAQ

References

  • When you use a search index to query data, you can use the following query methods: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, geo query, Boolean query, KNN vector query, nested query, and exists query. You can use the query methods provided by the search index to query data from multiple dimensions based on your business requirements.

    You can sort or paginate rows that meet the query conditions by using the sorting and paging features. For more information, see Sorting and paging.

    You can use the collapse (distinct) feature to collapse the result set based on a specific column. This way, data of the specified type appears only once in the query results. For more information, see Collapse (distinct).

  • If you want to analyze data in a data table, you can use the aggregation feature of the Search operation or execute SQL statements. For example, you can obtain the minimum and maximum values, sum, and total number of rows. For more information, see Aggregation and SQL query.

  • If you want to obtain all rows that meet the query conditions without the need to sort the rows, you can call the ParallelScan and ComputeSplits operations to use the parallel scan feature. For more information, see Parallel scan.