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 |
グループ化結果です。 |