Kueri terms mirip dengan kueri term, tetapi mendukung beberapa term. Sebaris data akan dikembalikan jika setidaknya salah satu kata kunci cocok persis dengan nilai kolom. Kueri terms dapat digunakan seperti Operator IN dalam pernyataan SQL.
Prasyarat
Sebuah instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi klien Tablestore.
Sebuah 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_type | Tipe kueri. Atur parameter ini ke TermsQuery. |
field_name | Nama kolom yang ingin Anda kueri. |
terms | Kata kunci yang digunakan untuk mencocokkan nilai kolom saat Anda melakukan kueri terms. Sebaris data akan dikembalikan jika setidaknya salah satu kata kunci cocok persis dengan nilai kolom. |
table_name | Nama tabel data. |
index_name | Nama indeks pencarian. |
limit | Jumlah maksimum baris yang ingin Anda kembalikan dalam kueri saat ini. Untuk hanya menanyakan jumlah baris yang memenuhi kondisi kueri tanpa menanyakan data spesifik dari baris-baris tersebut, atur parameter limit ke 0. |
get_total_count | Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default adalah false, yang menunjukkan 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 memenuhi kondisi kueri. Anda dapat menentukan bidang return_type dan column_names untuk parameter ini.
|
Contoh
Contoh berikut menunjukkan cara menanyakan baris di mana nilai kolom Col_Keyword cocok persis dengan salah satu dari 'key000', 'key100', 'key888', 'key999', 'key908', dan 'key1000'.
Lakukan kueri terms dengan menggunakan 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 terms, objek SearchResponse akan dikembalikan. Kode berikut memberikan contoh permintaan:
query = TermsQuery('Col_Keyword', ['key000', 'key100', 'key888', 'key999', 'key908', 'key1000']) 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 halaman dalam, kami sarankan Anda menggunakan parameter next_token karena metode ini tidak memiliki batasan pada kedalaman paging. # 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 sampel berikut untuk mengembalikan hasil tipe Tuple:
query = TermsQuery('Col_Keyword', ['key000', 'key100', 'key888', 'key999', 'key908', 'key1000']) 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 terms dengan menggunakan Tablestore SDK for Python versi sebelum 5.2.1
Jika Anda menggunakan versi Tablestore SDK for Python sebelum 5.2.1 untuk melakukan kueri terms, hasil tipe TUPLE dikembalikan secara default. Contoh kode berikut memberikan contoh permintaan:
query = TermsQuery('Col_Keyword', ['key000', 'key100', 'key888', 'key999', 'key908', 'key1000']) 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 term, 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 yang disediakan oleh indeks pencarian untuk menanyakan data dari berbagai dimensi sesuai dengan kebutuhan bisnis Anda.
Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri dengan menggunakan fitur pengurutan dan paginasi. Untuk informasi lebih lanjut, lihat Pengurutan dan paginasi.
Anda dapat menggunakan fitur collapse (distinct) untuk meruntuhkan 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).
Jika Anda ingin menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi operasi Search atau menjalankan pernyataan SQL. Misalnya, Anda dapat memperoleh nilai minimum dan maksimum, jumlah, dan jumlah total baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.
Jika Anda ingin memperoleh semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris-baris tersebut, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi lebih lanjut, lihat Pemindaian paralel.