All Products
Search
Document Center

Tablestore:Terms query

Last Updated:Apr 30, 2026

Kueri terms mengembalikan baris yang nilai kolomnya secara tepat cocok dengan setidaknya satu istilah yang ditentukan—setara dengan operator IN dalam SQL. Berbeda dengan kueri term, kueri terms menerima beberapa nilai pencocokan.

Prasyarat

Parameter

Parameter

Deskripsi

query_type

Jenis kueri. Atur parameter ini ke TermsQuery.

field_name

Nama kolom yang akan dikueri.

terms

Daftar istilah yang akan dicocokkan terhadap nilai kolom.

Satu baris dikembalikan jika nilai kolomnya secara tepat sesuai dengan setidaknya satu istilah dalam daftar tersebut.

table_name

Nama tabel data.

index_name

Nama indeks pencarian.

limit

Jumlah maksimum baris yang akan dikembalikan.

Atur parameter ini ke 0 untuk menghitung jumlah baris yang cocok tanpa mengembalikan datanya.

get_total_count

Apakah jumlah total baris yang sesuai dengan kondisi kueri perlu dikembalikan. Nilai default-nya adalah false.

Mengatur nilai ini ke true menurunkan performa kueri.

columns_To_get

Kolom yang akan dikembalikan untuk setiap baris yang cocok. Tentukan return_type dan, opsional, column_names.

  • ColumnReturnType.SPECIFIED: kembalikan hanya kolom yang tercantum dalam column_names.

  • ColumnReturnType.ALL: kembalikan semua kolom.

  • ColumnReturnType.NONE: kembalikan hanya kolom kunci primer.

Contoh

Contoh berikut melakukan kueri terhadap baris yang kolom Col_Keyword-nya secara tepat cocok dengan salah satu dari key000, key100, key888, key999, key908, atau key1000.

Catatan: Mengatur get_total_count ke true akan menurunkan performa kueri. Aktifkan opsi ini hanya jika Anda memerlukan jumlah hasil pencocokan yang akurat.
  • SDK untuk Python V5.2.1 dan versi lebih baru

    SDK untuk Python V5.2.1 dan versi lebih baru secara default mengembalikan objek SearchResponse.

    query = TermsQuery('Col_Keyword', ['key000', 'key100', 'key888', 'key999', 'key908', 'key1000'])
    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)
    
    # Untuk deep paging, gunakan next_token — tidak ada batasan pada kedalaman halaman.
    # all_rows = []
    # next_token = None
    # # Halaman pertama
    # 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)
    #
    # # Halaman berikutnya
    # 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))

    Untuk mendapatkan hasil sebagai tupel:

    query = TermsQuery('Col_Keyword', ['key000', 'key100', 'key888', 'key999', 'key908', 'key1000'])
    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()
  • SDK untuk Python versi sebelum V5.2.1

    SDK untuk Python versi sebelum V5.2.1 secara default mengembalikan hasil sebagai tupel.

    query = TermsQuery('Col_Keyword', ['key000', 'key100', 'key888', 'key999', 'key908', 'key1000'])
    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

Referensi

  • Saat menggunakan search index untuk mengkueri data, Anda dapat menggunakan metode kueri berikut: 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, dan exists query. Anda dapat menggunakan metode kueri yang disediakan oleh search index untuk mengkueri data dari berbagai dimensi sesuai kebutuhan bisnis Anda.

    Anda dapat mengurutkan atau melakukan paginasi terhadap baris yang memenuhi kondisi kueri dengan menggunakan fitur pengurutan dan paginasi. Untuk informasi selengkapnya, lihat Sorting and paging.

    Anda dapat menggunakan fitur collapse (distinct) untuk menciutkan set hasil berdasarkan kolom tertentu sehingga data jenis tertentu hanya muncul sekali dalam hasil kueri. Untuk informasi selengkapnya, lihat Collapse (distinct).

  • Jika ingin menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi dari operasi Search atau mengeksekusi pernyataan SQL. Misalnya, Anda dapat memperoleh nilai minimum dan maksimum, jumlah total, serta jumlah baris. Untuk informasi selengkapnya, lihat Aggregation dan SQL query.

  • Jika ingin memperoleh semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkannya, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi selengkapnya, lihat Parallel scan.