Kueri exists, juga dikenal sebagai kueri NULL atau kueri nilai NULL, digunakan dalam data yang jarang untuk menentukan apakah kolom dari suatu baris ada. Sebagai contoh, Anda dapat memfilter baris di mana nilai kolom alamat tidak kosong.
Untuk melakukan kueri exists pada kolom Nested, gunakan kueri nested.
Untuk memeriksa apakah kolom berisi nilai kosong, gunakan ExistsQuery bersama dengan mustNotQueries dari BoolQuery.
Jika salah satu kondisi berikut terpenuhi, sistem menganggap bahwa kolom tidak ada. Contoh ini menggunakan kolom city.
Tipe kolom city di indeks pencarian adalah tipe dasar seperti keyword. Jika sebuah baris tidak memiliki kolom city di tabel data, indeks pencarian menganggap bahwa kolom city tidak ada.
Tipe kolom city di indeks pencarian adalah tipe dasar seperti keyword. Jika sebuah baris memiliki nilai kolom city sebagai array kosong ("city" = "[]"), indeks pencarian menganggap bahwa kolom city tidak ada.
Prasyarat
Sebuah instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi instance OTSClient.
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 |
fieldName | Nama bidang yang ingin Anda cocokkan. |
query | Tipe kueri. Untuk menggunakan kueri exists, atur parameter ini ke TableStore.QueryType.EXISTS_QUERY. |
getTotalCount | Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default: false. Jika parameter ini diatur ke true, performa kueri akan terpengaruh. |
tableName | Nama tabel data. |
indexName | Nama indeks pencarian. |
columnsToGet | Menentukan apakah akan mengembalikan semua kolom dari setiap baris yang memenuhi kondisi kueri.
|
Contoh
Berikut adalah kode sampel untuk memfilter baris di mana kolom tertentu tidak kosong:
client.search({
tableName: TABLE_NAME,
indexName: INDEX_NAME,
searchQuery: {
offset: 0,
limit: 10, // Untuk memfilter hanya jumlah baris yang memenuhi kondisi kueri tanpa data spesifik, atur parameter limit ke 0.
query: {
queryType: TableStore.QueryType.EXISTS_QUERY,
query: {
fieldName: "pic_des"
},
},
getTotalCount: true // Tentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default: false.
},
columnToGet: { // Tentukan kolom yang ingin dikembalikan. Anda dapat mengatur parameter ini ke RETURN_SPECIFIED untuk mengembalikan kolom tertentu, RETURN_ALL untuk mengembalikan semua kolom, RETURN_ALL_FROM_INDEX untuk mengembalikan semua kolom di indeks pencarian, atau RETURN_NONE untuk mengembalikan hanya kolom kunci utama.
returnType: TableStore.ColumnReturnType.RETURN_SPECIFIED,
returnNames: ["Col_1", "Col_2", "Col_3"]
}
}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', JSON.stringify(data, null, 2));
});FAQ
Referensi
Indeks pencarian mendukung tipe kueri berikut: kueri tepat, kueri terms, kueri match all, kueri match, kueri match phrase, kueri prefix, kueri range, kueri wildcard, kueri Boolean, kueri geo, kueri nested, kueri vector, dan kueri exists. Pilih tipe kueri sesuai dengan kebutuhan bisnis Anda untuk memfilter data.
Untuk mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri, gunakan fitur pengurutan dan paging. Untuk informasi lebih lanjut, lihat Pengurutan dan paging.
Untuk merangkum set hasil berdasarkan kolom tertentu, gunakan fitur collapse (distinct). Dengan cara ini, data dari tipe tertentu muncul hanya sekali di hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).
Untuk menganalisis data dalam tabel data, seperti mendapatkan nilai ekstrem, jumlah, dan total baris, gunakan operasi agregasi atau jalankan pernyataan SQL. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.
Untuk mendapatkan semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris, panggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi lebih lanjut, lihat Pemindaian paralel.