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
Instance OTSClient telah diinisialisasi. Untuk detail lebih lanjut, lihat Inisialisasi Klien Tablestore.
Tabel data telah dibuat dan data telah ditulis ke tabel. Untuk informasi lebih lanjut, lihat Buat Tabel Data dan Tulis Data.
Indeks pencarian telah dibuat untuk tabel data. Untuk detail lebih lanjut, lihat Buat Indeks Pencarian.
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.
|
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.