Gunakan Tablestore SDK for Go untuk menciutkan hasil kueri berdasarkan suatu field dan mengembalikan satu baris untuk setiap nilai field yang berbeda.
Prasyarat
Instal Tablestore Go SDK dan inisialisasi client.
Deskripsi
Fitur collapse dapat dikombinasikan dengan tipe kueri apa pun. Fitur ini mengelompokkan hasil kueri berdasarkan nilai field tertentu dan mengembalikan baris pertama dari setiap kelompok sesuai urutan yang telah ditentukan. TotalCount tetap merepresentasikan jumlah baris yang cocok sebelum collapse diterapkan, sedangkan jumlah total kelompok setelah collapse tidak tersedia. Pengurutan (sorting) dan agregasi harus diaktifkan pada field yang digunakan dalam collapse. Field bertipe Long, Double, dan Keyword didukung, namun field array tidak didukung.
Kueri collapse hanya mendukung paginasi berbasis Offset dan Limit, tidak mendukung paginasi berbasis token. Nilai Offset + Limit tidak boleh melebihi 100.000, sehingga maksimal 100.000 kelompok dapat dikembalikan.
Jika agregasi dan collapse digunakan bersamaan, agregasi dihitung berdasarkan set hasil sebelum collapse.
searchQuery := search.NewSearchQuery().
SetQuery(&search.MatchAllQuery{}).
SetCollapse(&search.Collapse{FieldName: "category"}).
SetGetTotalCount(true)
response, err := client.Search(&tablestore.SearchRequest{
TableName: "example_table",
IndexName: "example_index",
SearchQuery: searchQuery,
})
if err != nil {
log.Fatal(err)
}
fmt.Println(response.TotalCount)
fmt.Println(response.Rows)
Parameter
|
Nama |
Tipe |
Deskripsi |
|
FieldName (wajib) |
string |
Bidang yang digunakan untuk melipat hasil. |
Respons
|
Nama |
Tipe |
Deskripsi |
|
TotalCount |
int64 |
Jumlah total baris yang cocok. Nilainya bergantung pada SetGetTotalCount. |
|
Rows |
[]*tablestore.Row |
Baris yang dikembalikan oleh kueri saat ini. Jumlahnya tidak melebihi nilai yang ditentukan oleh SetLimit. |
|
SearchHits |
[]*tablestore.SearchHit |
Hasil pencarian (search hits). Baca field ini jika Anda menggunakan highlighting, nested inner hits, atau skor relevansi. |
|
IsAllSuccess |
bool |
Menunjukkan apakah semua partisi indeks telah dikueri. Jika nilainya false, hasil parsial dikembalikan dan TotalCount mungkin lebih kecil daripada jumlah aktual baris yang cocok. |
|
AggregationResults |
search.AggregationResults |
Hasil agregasi. |
|
GroupByResults |
search.GroupByResults |
Hasil pengelompokan. |