Anda dapat melakukan kueri awalan untuk mengambil data yang sesuai dengan awalan tertentu. Jika kolom yang digunakan untuk mencocokkan kondisi awalan merupakan kolom TEXT, kolom tersebut akan ditokenisasi. Suatu baris memenuhi kondisi kueri jika setidaknya satu tokennya mengandung awalan yang ditentukan.
Prasyarat
-
Instans OTSClient telah diinisialisasi. Untuk informasi selengkapnya, lihat Initialize a Tablestore client.
-
Tabel data telah dibuat dan data telah ditulis ke dalamnya. Untuk informasi selengkapnya, lihat Create a data table dan Write data.
-
Indeks pencarian telah dibuat untuk tabel data tersebut. Untuk informasi selengkapnya, lihat Create a search index.
Parameter
|
Parameter |
Deskripsi |
|
field_name |
Nama kolom yang akan dikueri. |
|
prefix |
Awalan yang akan dicocokkan. Jika kolom tersebut merupakan kolom TEXT, kolom tersebut akan ditokenisasi terlebih dahulu. Suatu baris cocok jika setidaknya satu token-nya mengandung awalan yang ditentukan. |
|
query |
Jenis kueri. Atur parameter ini ke |
|
table_name |
Nama tabel data. |
|
index_name |
Nama indeks pencarian. |
|
limit |
Jumlah maksimum baris yang dikembalikan dalam satu kueri. Untuk menghitung jumlah baris yang cocok tanpa mengambil datanya, atur parameter ini ke |
|
get_total_count |
Menentukan apakah jumlah total baris yang sesuai dengan kondisi kueri akan dikembalikan. Nilai default: Mengatur parameter ini ke |
|
columns_to_get |
Mengontrol kolom mana saja yang dikembalikan untuk setiap baris yang cocok. Konfigurasikan parameter ini menggunakan bidang
|
Contoh
Contoh berikut menunjukkan cara mengambil baris yang nilai kolom Col_Keyword-nya diawali dengan tablestore.
-
Lakukan kueri awalan dengan menggunakan Tablestore SDK untuk Python V5.2.1 atau versi yang lebih baru
Tablestore SDK untuk Python V5.2.1 dan versi yang lebih baru secara default mengembalikan objek
SearchResponse. Kode berikut menunjukkan contoh permintaan:query = PrefixQuery('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 deep paging diperlukan, gunakan next_token untuk menghindari batasan kedalaman halaman. # 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) # # # perulangan # 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))Untuk mengembalikan hasil sebagai tupel, panggil
.v1_response()pada hasil tersebut:query = PrefixQuery('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() -
Lakukan kueri awalan dengan menggunakan Tablestore SDK untuk Python versi sebelum 5.2.1
Versi Tablestore SDK untuk Python sebelum V5.2.1 secara default mengembalikan hasil sebagai tupel. Kode berikut menunjukkan contoh permintaan:
query = PrefixQuery('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 mengambil data, Anda dapat menggunakan metode kueri berikut: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, geo query, Boolean query, KNN vector query, nested query, dan exists query. Anda dapat menggunakan metode kueri yang disediakan oleh indeks pencarian untuk mengambil data dari berbagai dimensi sesuai kebutuhan bisnis Anda.
Anda dapat mengurutkan atau membuat halaman untuk baris-baris yang memenuhi kondisi kueri dengan menggunakan fitur pengurutan dan penjedaan halaman. Untuk informasi selengkapnya, lihat Sorting and paging.
Anda dapat menggunakan fitur collapse (distinct) untuk menciutkan set hasil berdasarkan kolom tertentu sehingga data jenis tertentu hanya muncul sekali dalam hasil kueri. Untuk informasi selengkapnya, lihat Collapse (distinct).
Jika ingin menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi dari operasi Search atau mengeksekusi pernyataan SQL. Misalnya, Anda dapat memperoleh nilai minimum dan maksimum, jumlah total, serta jumlah baris. Untuk informasi selengkapnya, lihat Aggregation dan SQL query.
Jika ingin memperoleh semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkannya, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi selengkapnya, lihat Parallel scan.