全部产品
Search
文档中心

Tablestore:Kueri Exists

更新时间:Jul 06, 2025

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.

Catatan
  • 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

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.