Kueri wildcard dalam Tablestore SDK untuk Node.js menggunakan karakter * dan ? untuk menyusun pola pencocokan dan mengkueri data yang sesuai dengan pola tersebut pada bidang Keyword, Text, atau FuzzyKeyword.
Jika pola kueri berupa *word* (setara dengan WHERE field_a LIKE '%word%' dalam SQL), Anda dapat menggunakan fitur kueri wildcard berbasis token untuk performa yang lebih baik. Performa ini tidak menurun seiring peningkatan volume data.
Untuk melakukan pencarian NOT LIKE, gunakan WildcardQuery dengan parameter mustNotQueries dari BoolQuery.
Prasyarat
-
Instans OTSClient telah diinisialisasi. Untuk informasi selengkapnya, lihat Inisialisasi instans OTSClient.
-
Sebuah tabel data telah dibuat dan data telah ditulis ke tabel tersebut. Untuk informasi selengkapnya, lihat Membuat tabel data dan Menulis data.
-
Indeks pencarian telah dibuat untuk tabel data tersebut. Untuk informasi selengkapnya, lihat Buat indeks pencarian.
Parameter
|
Parameter |
Deskripsi |
|
tableName |
Nama tabel data. |
|
indexName |
Nama indeks pencarian. |
|
offset |
Posisi awal kueri saat ini. |
|
limit |
Jumlah maksimum baris yang ingin dikembalikan oleh kueri saat ini. |
|
queryType |
Jenis kueri. Atur parameter ini ke TableStore.QueryType.WILDCARD_QUERY. |
|
fieldName |
Nama kolom yang ingin dikueri. |
|
value |
String yang berisi karakter wildcard. Panjang string maksimal 32 karakter. |
|
getTotalCount |
Menentukan apakah jumlah total baris yang sesuai dengan kondisi kueri akan dikembalikan. Secara default, nilai parameter ini adalah false, yang berarti jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan. Jika Anda mengatur parameter getTotalCount ke true, performa kueri akan terganggu. |
|
columnToGet |
Menentukan apakah semua kolom dari setiap baris yang memenuhi kondisi kueri akan dikembalikan. Anda dapat mengonfigurasi returnType dan returnNames untuk parameter ini.
|
Contoh
Kode contoh berikut mencari baris yang nilainya pada Col_Keyword sesuai dengan string "table*e".
/**
* Cari di tabel baris yang nilainya pada Col_Keyword sesuai dengan "table*e".
*/
client.search({
tableName: TABLE_NAME,
indexName: INDEX_NAME,
searchQuery: {
offset: 0,
limit: 10, // Untuk hanya mengkueri jumlah baris yang memenuhi kondisi kueri tanpa mengembalikan data spesifik, Anda dapat mengatur limit ke 0. Dengan cara ini, Tablestore mengembalikan jumlah baris yang memenuhi kondisi kueri tanpa data spesifik dari tabel.
query: { // Atur jenis kueri ke TableStore.QueryType.WILDCARD_QUERY.
queryType: TableStore.QueryType.WILDCARD_QUERY,
query: {
fieldName: "Col_Keyword",
value: "table*e" // Tentukan string yang berisi satu atau beberapa karakter wildcard dalam kueri wildcard.
}
},
getTotalCount: true // Tentukan apakah jumlah total baris yang memenuhi kondisi kueri akan dikembalikan. Nilai default parameter ini adalah false, yang berarti jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan.
},
columnToGet: { // Tentukan kolom yang ingin dikembalikan. Anda dapat mengatur parameter ke RETURN_SPECIFIED untuk mengembalikan kolom tertentu, RETURN_ALL untuk mengembalikan semua kolom, RETURN_ALL_FROM_INDEX untuk mengembalikan semua kolom dalam indeks pencarian, atau RETURN_NONE untuk hanya mengembalikan kolom kunci primer.
returnType: TableStore.ColumnReturnType.RETURN_ALL
}
}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', JSON.stringify(data, null, 2));
});
FAQ
Referensi
-
Jenis kueri berikut didukung oleh indeks pencarian: kueri tepat, kueri istilah, Pencocokan semua kueri, kueri cocok, permintaan pencocokan frasa, kueri awalan, kueri rentang, kueri wildcard, Boolean query, kueri geografis, kueri bersarang, kueri vektor, dan kueri exists. Anda dapat memilih jenis kueri sesuai kebutuhan bisnis Anda.
Jika Anda ingin mengurutkan atau melakukan paginasi pada baris yang memenuhi kondisi kueri, Anda dapat menggunakan fitur pengurutan dan paginasi. Untuk informasi selengkapnya, lihat Pengurutan dan paginasi.
Jika Anda ingin menciutkan set hasil berdasarkan kolom tertentu, Anda dapat menggunakan fitur collapse (distinct). Dengan cara ini, data jenis tertentu hanya muncul sekali dalam hasil kueri. Untuk informasi selengkapnya, lihat Collapse (distinct).
-
Jika Anda ingin menganalisis data dalam tabel data, seperti mendapatkan nilai ekstrem, jumlah total, dan jumlah baris, Anda dapat melakukan operasi agregasi atau mengeksekusi pernyataan SQL. Untuk informasi selengkapnya, lihat Agregasi dan Kueri SQL.
-
Jika Anda ingin dengan cepat mendapatkan 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 Pemindaian paralel.