全部产品
Search
文档中心

Tablestore:Kueri Wildcard

更新时间:Jul 06, 2025

Saat melakukan kueri wildcard, Anda dapat menggunakan karakter asterisk (*) dan tanda tanya (?) untuk mencari data. Asterisk (*) cocok dengan string dengan panjang berapa pun di awal, tengah, atau akhir istilah pencarian. Tanda tanya (?) cocok dengan satu karakter pada posisi tertentu. String dapat dimulai dengan asterisk (*) atau tanda tanya (?). Sebagai contoh, jika Anda mencari string "table*e", hasil seperti "tablestore" akan cocok.

Catatan

Untuk menggunakan operator NOT LIKE, Anda harus menggabungkan WildcardQuery dengan must_not_queries dari BoolQuery.

Prasyarat

Parameter

Parameter

Deskripsi

query

Jenis kueri. Atur parameter query menjadi WildcardQuery.

field_name

Nama kolom yang ingin Anda kueri.

value

String yang mengandung karakter wildcard. Panjang string tidak boleh melebihi 32 karakter.

table_name

Nama tabel data.

index_name

Nama indeks pencarian.

limit

Jumlah maksimum baris yang ingin Anda dapatkan dari hasil kueri.

get_total_count

Menentukan apakah akan mengembalikan jumlah total baris yang cocok. Nilai default: False.

Jika Anda mengatur parameter get_total_count menjadi true, performa kueri akan terpengaruh.

ColumnsToGet

Menentukan apakah akan mengembalikan semua kolom dari baris yang memenuhi kondisi kueri.

  • Jika Anda mengatur parameter return_type menjadi ColumnReturnType.SPECIFIED, Anda harus menentukan kolom yang ingin dikembalikan.

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

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

Contoh

Berikut adalah contoh kode untuk mengkueri baris di mana nilai kolom Col_Keyword cocok dengan pola 'tablestor*'.

  • Tablestore SDK for Python V5.2.1 atau lebih baru

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

    query = WildcardQuery('Col_Keyword', 'tablestor*')
    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 diperlukan paginasi mendalam, 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 bertipe Tuple:

    query = WildcardQuery('Col_Keyword', 'tablestor*')
    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 versi sebelum 5.2.1

    Jika Anda menggunakan versi Tablestore SDK for Python sebelum 5.2.1 untuk melakukan kueri wildcard, hasil bertipe Tuple akan dikembalikan secara default. Berikut adalah contoh permintaan:

    query = WildcardQuery('Col_Keyword', 'tablestor*')
    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 mengkueri 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. Anda dapat menggunakan metode kueri ini untuk mengkueri data dari berbagai dimensi sesuai dengan kebutuhan bisnis Anda.

    Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri menggunakan fitur Pengurutan dan paginasi. Untuk informasi lebih lanjut, lihat Pengurutan dan paginasi.

    Anda dapat menggunakan fitur collapse (distinct) untuk merangkum set hasil berdasarkan kolom tertentu. Dengan cara ini, data dari jenis tertentu muncul hanya sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).

  • Untuk menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi dari operasi Pencarian atau menjalankan pernyataan SQL. Contohnya, Anda dapat memperoleh nilai minimum, maksimum, jumlah, dan total jumlah baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

  • Jika Anda ingin memperoleh semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi lebih lanjut, lihat Pemindaian paralel.