全部產品
Search
文件中心

Tablestore:摺疊(去重)

更新時間:Aug 12, 2026

使用 Tablestore Go SDK 按指定欄位摺疊查詢結果,每個不同欄位值只返回一行。

前提條件

安裝Tablestore Go SDK並初始化用戶端。

功能說明

摺疊(去重)可與任意查詢類型配合使用,按指定欄位值對查詢結果分組,每組只返回排序後的第一行。TotalCount 仍表示摺疊前的匹配總行數;無法擷取摺疊後的總分組數。用於摺疊的欄位必須啟用排序與統計彙總,僅支援 Long、Double 和 Keyword 類型,不支援數組欄位。

重要
  • 摺疊查詢僅支援 Offset 和 Limit 翻頁,不支援 Token 翻頁。Offset + Limit 最大為 100000,因此最多返回 100000 個分組。

  • 同時使用統計彙總和摺疊時,統計彙總作用於摺疊前的結果集。

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)

參數說明

名稱

類型

說明

FieldName(必選)

string

用於摺疊結果的欄位名稱。

傳回值

名稱

類型

說明

TotalCount

int64

匹配總行數。傳回值取決於 SetGetTotalCount 配置。

Rows

[]*tablestore.Row

本次查詢返回的行資料,數量不超過 SetLimit 指定的值。

SearchHits

[]*tablestore.SearchHit

查詢命中結果。配置摘要與高亮、嵌套 InnerHits 或需要相關性評分時,從該欄位讀取結果。

IsAllSuccess

bool

是否已成功查詢全部索引分割區。值為 false 時返回的是部分結果,TotalCount 可能小於實際匹配行數。

AggregationResults

search.AggregationResults

統計彙總結果。

GroupByResults

search.GroupByResults

分組結果。