すべてのプロダクト
Search
ドキュメントセンター

Tablestore:クエリ結果の折りたたみ

最終更新日:Aug 12, 2026

Tablestore Go SDK を使用して、フィールドによってクエリ結果を折りたたみ、一意のフィールド値ごとに 1 行を返します。

前提条件

Tablestore Go SDK をインストールし、クライアントを初期化します。

概要

折りたたみは、任意のクエリタイプと組み合わせることができます。これは、フィールド値によってクエリ結果をグループ化し、各グループからソートされた最初の行を返します。TotalCount は、折りたたみ前に一致した行数です。折りたたみ後のグループの総数は取得できません。折りたたみに使用するフィールドでは、ソートと集約を有効にする必要があります。Long、Double、キーワード型のフィールドはサポートされていますが、配列フィールドはサポートされていません。

重要
  • 折りたたみクエリは、Offset と Limit に基づくページネーションのみをサポートし、トークンベースのページネーションはサポートしていません。Offset と Limit の合計は 100,000 を超えることはできず、最大 100,000 グループまで返すことができます。

  • 集約と折りたたみを併用する場合、集約は折りたたみ前の結果セットに対して計算されます。

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

検索ヒットです。ハイライト、ネストされたインナーヒット、または関連度スコアを使用する場合は、このフィールドを読み取ってください。

IsAllSuccess

bool

すべてのインデックスパーティションがクエリされたかどうかを示します。値が false の場合、部分的な結果が返され、TotalCount は実際に一致した行数より少なくなる可能性があります。

AggregationResults

search.AggregationResults

集約結果です。

GroupByResults

search.GroupByResults

グループ化結果です。