All Products
Search
Document Center

Tablestore:Prefix query

Last Updated:May 01, 2026

Anda dapat melakukan kueri awalan untuk mengambil data yang sesuai dengan awalan tertentu. Jika kolom yang digunakan untuk mencocokkan kondisi awalan merupakan kolom TEXT, kolom tersebut akan ditokenisasi. Suatu baris memenuhi kondisi kueri jika setidaknya satu tokennya mengandung awalan yang ditentukan.

Prasyarat

Parameter

Parameter

Deskripsi

field_name

Nama kolom yang akan dikueri.

prefix

Awalan yang akan dicocokkan.

Jika kolom tersebut merupakan kolom TEXT, kolom tersebut akan ditokenisasi terlebih dahulu. Suatu baris cocok jika setidaknya satu token-nya mengandung awalan yang ditentukan.

query

Jenis kueri. Atur parameter ini ke PrefixQuery.

table_name

Nama tabel data.

index_name

Nama indeks pencarian.

limit

Jumlah maksimum baris yang dikembalikan dalam satu kueri.

Untuk menghitung jumlah baris yang cocok tanpa mengambil datanya, atur parameter ini ke 0.

get_total_count

Menentukan apakah jumlah total baris yang sesuai dengan kondisi kueri akan dikembalikan. Nilai default: false.

Mengatur parameter ini ke true akan menurunkan performa kueri.

columns_to_get

Mengontrol kolom mana saja yang dikembalikan untuk setiap baris yang cocok. Konfigurasikan parameter ini menggunakan bidang return_type dan column_names.

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

  • ColumnReturnType.ALL: Mengembalikan semua kolom.

  • ColumnReturnType.NONE: Mengembalikan hanya kolom kunci primer.

Contoh

Contoh berikut menunjukkan cara mengambil baris yang nilai kolom Col_Keyword-nya diawali dengan tablestore.

  • Lakukan kueri awalan dengan menggunakan Tablestore SDK untuk Python V5.2.1 atau versi yang lebih baru

    Tablestore SDK untuk Python V5.2.1 dan versi yang lebih baru secara default mengembalikan objek SearchResponse. Kode berikut menunjukkan contoh permintaan:

    query = PrefixQuery('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)
    
    # # Jika deep paging diperlukan, gunakan next_token untuk menghindari batasan kedalaman halaman.
    # all_rows = []
    # next_token = None
    # # putaran 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)
    # 
    # # perulangan
    # 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 mengembalikan hasil sebagai tupel, panggil .v1_response() pada hasil tersebut:

    query = PrefixQuery('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()
  • Lakukan kueri awalan dengan menggunakan Tablestore SDK untuk Python versi sebelum 5.2.1

    Versi Tablestore SDK untuk Python sebelum V5.2.1 secara default mengembalikan hasil sebagai tupel. Kode berikut menunjukkan contoh permintaan:

    query = PrefixQuery('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

Referensi

  • Saat menggunakan indeks pencarian untuk mengambil 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 indeks pencarian untuk mengambil data dari berbagai dimensi sesuai kebutuhan bisnis Anda.

    Anda dapat mengurutkan atau membuat halaman untuk baris-baris yang memenuhi kondisi kueri dengan menggunakan fitur pengurutan dan penjedaan halaman. 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.