全部产品
Search
文档中心

Tablestore:Kueri tepat

更新时间:Jul 02, 2025

Gunakan kueri tepat untuk menanyakan nilai bidang yang cocok persis dengan kata kunci tertentu. Kueri ini berfungsi seperti pencocokan string, di mana jika kolom TEXT diperiksa dan setidaknya satu token dalam baris cocok persis dengan kata kunci, baris tersebut memenuhi kondisi kueri. Kata kunci tidak dipecah menjadi token.

Prasyarat

Parameter

Parameter

Deskripsi

query_type

Jenis kueri. Atur parameter query_type ke TermQuery.

field_name

Nama bidang yang ingin Anda cocokkan.

term

Kata kunci yang digunakan untuk mencocokkan nilai bidang saat Anda melakukan kueri tepat.

Kata kunci ini tidak dipecah menjadi token. Sebaliknya, seluruh kata kunci digunakan untuk mencocokkan nilai bidang.

Jika tipe bidang adalah TEXT, Tablestore akan memecah string dan menggunakan token-token tersebut untuk mencocokkan kata kunci. Baris memenuhi kondisi kueri ketika setidaknya salah satu token dalam baris cocok persis dengan kata kunci. Misalnya, jika nilai bidang bertipe TEXT dalam sebuah baris adalah "tablestore is cool", nilainya dapat dipecah menjadi "tablestore", "is", dan "cool". Baris tersebut memenuhi kondisi kueri jika Anda menentukan "tablestore", "is", atau "cool" sebagai kata kunci untuk mencocokkan nilai bidang.

table_name

Nama tabel data.

index_name

Nama indeks pencarian.

limit

Jumlah maksimum baris yang ingin Anda dapatkan dari kueri.

Untuk hanya menanyakan jumlah baris yang memenuhi kondisi kueri tanpa mengembalikan data spesifik, Anda dapat mengatur limit ke 0.

get_total_count

Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default dari parameter ini adalah false, yang menentukan bahwa jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan.

Jika Anda mengatur parameter ini ke true, performa kueri akan terpengaruh.

columns_to_get

Menentukan apakah akan mengembalikan semua kolom dari setiap baris yang cocok. Anda dapat mengonfigurasi return_type dan column_names untuk parameter ini.

  • Jika Anda mengatur return_type ke ColumnReturnType.SPECIFIED, gunakan field column_names untuk menentukan kolom yang ingin Anda kembalikan.

  • Jika Anda mengatur return_type ke ColumnReturnType.ALL, semua kolom dikembalikan.

  • Jika Anda mengatur return_type ke ColumnReturnType.NONE, hanya kolom kunci utama yang dikembalikan.

Contoh

Berikut adalah contoh kode untuk menanyakan baris di mana nilai kolom Col_Keyword cocok persis dengan kata kunci 'tablestore'.

  • Tablestore SDK for Python V5.2.1 atau yang lebih baru

    Secara default, jika Anda menggunakan Tablestore SDK for Python V5.2.1 atau yang lebih baru untuk melakukan kueri tepat, objek SearchResponse akan dikembalikan. Berikut adalah contoh permintaan:

    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)
    
    # # Jika paginasi mendalam diperlukan, kami sarankan Anda menggunakan parameter next_token karena metode ini tidak memiliki batasan pada kedalaman paginasi.
    # 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)
    # 
    # # 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))

    Anda dapat menggunakan permintaan berikut untuk mengembalikan hasil tipe Tuple:

    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 sebelum 5.2.1

    Jika Anda menggunakan versi Tablestore SDK for Python yang lebih lama dari 5.2.1 untuk melakukan kueri tepat, hasil tipe Tuple akan dikembalikan secara default. Contoh berikut menunjukkan permintaan:

    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

Referensi

  • Saat menggunakan indeks pencarian untuk menanyakan data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri terms, kueri match all, kueri match, kueri match phrase, kueri prefix, kueri range, kueri wildcard, kueri geo, kueri Boolean, kueri vektor KNN, kueri nested, dan kueri exists. Gunakan metode kueri ini sesuai dengan kebutuhan bisnis Anda untuk menanyakan data dari berbagai dimensi.

    Gunakan fitur pengurutan dan paging untuk mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri. Untuk informasi lebih lanjut, lihat Pengurutan dan Paging.

    Gunakan fitur collapse (distinct) untuk merangkum set hasil berdasarkan kolom tertentu, sehingga data dari tipe yang ditentukan muncul hanya sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (Distinct).

  • Untuk menganalisis data dalam tabel, gunakan fitur agregasi dari operasi Search atau jalankan pernyataan SQL untuk mendapatkan nilai minimum, maksimum, jumlah, dan total jumlah baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

  • Untuk memperoleh semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris, gunakan fitur pemindaian paralel dengan memanggil operasi ParallelScan dan ComputeSplits. Untuk informasi lebih lanjut, lihat Pemindaian Paralel.