Anda dapat menggunakan fitur collapse (distinct) untuk menggabungkan set hasil berdasarkan kolom tertentu saat kueri mengembalikan sejumlah besar data dari tipe yang sama. Data dari tipe tersebut hanya ditampilkan sekali dalam hasil untuk memastikan keragaman jenis hasil.
Prasyarat
Sebuah instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi instance OTSClient.
Sebuah tabel data telah dibuat dan data telah dimasukkan ke dalam 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.
Catatan penggunaan
Jika Anda menggunakan fitur collapse, paginasi hanya dapat dilakukan dengan menentukan parameter Offset dan Limit, bukan token.
Jika Anda menggabungkan dan merangkum set hasil secara bersamaan, rangkuman akan diproses terlebih dahulu sebelum penggabungan.
Jika Anda menggabungkan hasil kueri, jumlah total hasil yang dikembalikan ditentukan oleh penjumlahan nilai Offset dan Limit. Maksimal 100.000 hasil dapat dikembalikan.
Jumlah total baris dalam respons mencerminkan jumlah baris yang memenuhi kondisi kueri sebelum menerapkan fitur collapse (distinct). Setelah penggabungan, jumlah total baris tidak dapat diquery.
Parameter
Parameter | Deskripsi |
NamaTabel | Nama tabel data. |
NamaIndeks | Nama indeks pencarian. |
Kueri | Tipe kueri. Anda dapat menetapkan parameter ini ke tipe kueri apa pun. |
Collapse | Parameter collapse, termasuk parameter FieldName. FieldName: nama kolom berdasarkan mana set hasil digabungkan. Hanya kolom dengan nilai bertipe INTEGER, FLOATING-POINT, dan KEYWORD yang didukung. |
Offset | Posisi dari mana kueri saat ini dimulai. |
Batas | Jumlah maksimum baris yang ingin Anda kembalikan dalam kueri saat ini. Untuk hanya menanyakan jumlah baris yang memenuhi kondisi kueri tanpa data spesifik, tetapkan parameter Batas ke 0. |
Contoh kode
Berikut adalah contoh kode untuk menanyakan baris di mana nilai user_id cocok dengan "00002", kemudian menggabungkan set hasil berdasarkan nilai kolom product_name:
func QueryWithCollapse(client *tablestore.TableStoreClient, tableName string, indexName string) {
searchRequest := &tablestore.SearchRequest{}
searchRequest.SetTableName(tableName) // Tentukan nama tabel.
searchRequest.SetIndexName(indexName) // Tentukan nama indeks pencarian.
searchQuery := search.NewSearchQuery()
searchQuery.SetQuery(&search.MatchQuery{ // Tentukan kondisi kueri.
FieldName: "user_id",
Text: "00002",
})
searchQuery.SetCollapse(&search.Collapse{
FieldName: "product_name", // Gabungkan set hasil berdasarkan nilai kolom product_name.
})
searchQuery.SetOffset(0)
searchQuery.SetLimit(100)
searchRequest.SetColumnsToGet(&tablestore.ColumnsToGet{ReturnAll:true}) // Kembalikan semua kolom dalam baris yang memenuhi kondisi kueri.
searchRequest.SetSearchQuery(searchQuery)
searchResponse, err := client.Search(searchRequest) // Lakukan kueri.
if err != nil {
fmt.Println("Gagal mencari dengan kesalahan:", err)
return
}
for _, row := range searchResponse.Rows { // Tampilkan baris yang dikembalikan.
jsonBody, err := json.Marshal(row)
if err != nil {
panic(err)
}
fmt.Println("Baris: ", string(jsonBody))
}
}FAQ
Referensi
Ketika menggunakan indeks pencarian untuk menanyakan 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. Anda dapat menggunakan metode kueri ini untuk menanyakan data dari berbagai dimensi sesuai dengan kebutuhan bisnis Anda.
Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri dengan menggunakan fitur Pengurutan dan paginasi. Untuk informasi lebih lanjut, lihat Pengurutan dan paginasi.
Anda dapat menggunakan fitur collapse (distinct) untuk menggabungkan set hasil berdasarkan kolom tertentu. Dengan cara ini, data dari tipe yang ditentukan muncul hanya sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).
Untuk menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi dari operasi Search atau menjalankan pernyataan SQL. Misalnya, Anda dapat memperoleh nilai minimum dan maksimum, jumlah, serta total jumlah baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.
Jika Anda ingin mendapatkan semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi lebih lanjut, lihat Lakukan pemindaian paralel.