Gunakan Tablestore SDK untuk Go guna memfilter hasil setelah kueri dan agregasi diproses.
Prasyarat
Pasang Tablestore Go SDK dan inisialisasi client.
Deskripsi
Filter pasca-kueri menggunakan SearchFilter untuk memfilter hasil kueri. Filter ini diterapkan setelah kueri dan agregasi diproses, sehingga tidak mengubah hasil agregasi dan hanya memengaruhi baris yang dikembalikan serta jumlah baris yang cocok. Fitur ini memungkinkan Anda mengontrol waktu evaluasi suatu kondisi kueri, yang jika digunakan dengan tepat dapat meningkatkan performa kueri.
Kueri utama mendukung semua jenis kueri yang didukung oleh Search, tetapi MatchAllQuery tidak disarankan. Filter hanya mendukung TermQuery, TermsQuery, RangeQuery, ExistsQuery, serta kombinasi BoolQuery dari jenis-jenis kueri tersebut. BoolQuery mendukung MustQueries, MustNotQueries, dan ShouldQueries, tetapi tidak mendukung FilterQueries. Hanya bidang bertipe Keyword, Long, dan Double yang dapat difilter, dan bidang tersebut harus memiliki fitur sorting dan agregasi yang diaktifkan. Kondisi filter tidak mendukung Weight.
filter := (&search.SearchFilter{}).SetQuery(
&search.TermQuery{FieldName: "status", Term: "active"},
)
searchQuery := search.NewSearchQuery().
SetQuery(&search.TermQuery{FieldName: "category", Term: "books"}).
SetSearchFilter(filter).
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 |
|
Query (wajib) |
search.Query |
Kondisi filter. Didukung TermQuery, TermsQuery, RangeQuery, ExistsQuery, serta kombinasi BoolQuery dari jenis-jenis tersebut. |
Respons
|
Nama |
Type |
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. Baca bidang ini ketika Anda menggunakan highlighting, nested inner hits, atau skor relevansi. |
|
NextToken |
[]byte |
Token untuk halaman berikutnya. Jika nilainya tidak kosong, teruskan ke kueri berikutnya. |
|
IsAllSuccess |
bool |
Menunjukkan apakah semua partisi indeks telah dikueri. Jika nilainya false, hanya hasil parsial yang dikembalikan dan TotalCount mungkin lebih kecil daripada jumlah sebenarnya dari baris yang cocok. |
|
AggregationResults |
search.AggregationResults |
Hasil agregasi. |
|
GroupByResults |
search.GroupByResults |
Hasil pengelompokan. |