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.
Untuk menggunakan operator NOT LIKE, Anda harus menggabungkan WildcardQuery dengan must_not_queries dari BoolQuery.
Prasyarat
Sebuah instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi klien Tablestore.
Tabel data telah dibuat dan data telah ditulis ke tabel tersebut. Untuk informasi lebih lanjut, lihat Buat tabel data dan Tulis data.
Indeks pencarian telah dibuat untuk tabel data. Untuk informasi lebih lanjut, lihat Buat indeks pencarian.
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.
|
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.