Kueri exists, juga dikenal sebagai kueri NULL atau kueri nilai NULL, digunakan dalam dataset 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. Dalam contoh ini, kolom city digunakan:
Tipe kolom city dalam indeks pencarian adalah tipe dasar seperti keyword. Jika sebuah baris tidak memiliki kolom city dalam tabel data, indeks pencarian menganggap bahwa kolom city tidak ada.
Tipe kolom city dalam 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 |
NamaTabel | Nama tabel data. |
NamaIndeks | Nama indeks pencarian. |
Kueri | Tipe kueri. Atur parameter ini ke ExistsQuery. |
NamaKolom | Nama kolom yang ingin Anda kueri. |
Contoh
Berikut adalah kode contoh untuk memfilter baris di mana kolom tertentu tidak kosong:
func ExitsQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
searchRequest := &tablestore.SearchRequest{}
searchRequest.SetTableName(tableName)
searchRequest.SetIndexName(indexName)
query := &search.ExitsQuery{} // Setel tipe kueri ke ExitsQuery.
query.FieldName = "city" // Tentukan nama kolom yang ingin Anda kueri.
searchQuery := search.NewSearchQuery()
searchQuery.SetQuery(query)
searchQuery.SetGetTotalCount(true)
searchRequest.SetSearchQuery(searchQuery)
// Kembalikan semua kolom dalam baris yang memenuhi kondisi kueri.
searchRequest.SetColumnsToGet(&tablestore.ColumnsToGet{
ReturnAll:true,
})
searchResponse, err := client.Search(searchRequest)
if err != nil {
fmt.Printf("%#v", err)
return
}
fmt.Println("IsAllSuccess: ", searchResponse.IsAllSuccess) // Periksa apakah semua baris yang memenuhi kondisi kueri dikembalikan.
fmt.Println("TotalCount: ", searchResponse.TotalCount) // Tentukan bahwa jumlah total baris yang memenuhi kondisi kueri, bukan jumlah baris yang dikembalikan, ditampilkan.
fmt.Println("RowCount: ", len(searchResponse.Rows))
for _, row := range searchResponse.Rows {
jsonBody, err := json.Marshal(row)
if err != nil {
panic(err)
}
fmt.Println("Row: ", string(jsonBody))
}
}FAQ
Referensi
Saat menggunakan indeks pencarian untuk memfilter data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri terms, kueri match all, kueri match, kueri match phrase, kueri prefix, kueri rentang, kueri wildcard, kueri geo, kueri Boolean, kueri vektor KNN, kueri nested, dan kueri exists. Gunakan metode kueri yang disediakan oleh indeks pencarian untuk memfilter data sesuai dengan kebutuhan bisnis Anda.
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. Dengan cara ini, data dari tipe tertentu hanya muncul sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).
Untuk menganalisis data dalam tabel data, gunakan fitur agregasi operasi Search atau jalankan pernyataan SQL. Contohnya, Anda dapat memperoleh nilai minimum dan maksimum, jumlah, serta total baris. 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 Lakukan pemindaian paralel.