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

Tablestore:ポストクエリフィルターの使用

最終更新日:Aug 12, 2026

Tablestore Go SDK を使用して、クエリおよび集約の処理後に結果をフィルターします。

前提条件

Tablestore Go SDK をインストールし、クライアントを初期化してください。

説明

ポストクエリフィルターでは、 SearchFilter を使用してクエリ結果をフィルターします。このフィルターはクエリおよび集約の処理後に適用されます。そのため、集約結果は変更されず、返される行と一致した行数のみに影響します。この機能を使用すると、クエリ条件を評価するタイミングを制御できます。適切に使用することで、クエリパフォーマンスを向上できます。

重要

メインクエリは Search がサポートするすべてのクエリタイプをサポートしますが、MatchAllQuery は推奨されません。フィルターは TermQuery、TermsQuery、RangeQuery、ExistsQuery、およびこれらのクエリタイプで構成された BoolQuery のみをサポートします。BoolQuery は MustQueries、MustNotQueries、ShouldQueries をサポートしますが、FilterQueries はサポートしません。フィルターできるのはキーワード、Long、Double フィールドのみで、対象フィールドではソートと集約を有効にする必要があります。フィルター条件は重みをサポートしません。

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)

パラメータ

名前

タイプ

説明

Query (必須)

search.Query

フィルター条件です。TermQuery、TermsQuery、RangeQuery、ExistsQuery、およびこれらのタイプの組み合わせである BoolQuery がサポートされます。

レスポンス

名前

タイプ

説明

TotalCount

int64

一致した行の総数です。値は SetGetTotalCount によって異なります。

Rows

[]*tablestore.Row

現在のクエリで返される行です。件数は SetLimit で指定した値を超えません。

SearchHits

[]*tablestore.SearchHit

検索ヒットです。ハイライト、nested inner hits、または関連度スコアを使用する場合は、このフィールドを読み取ります。

NextToken

[]byte

次のページのトークンです。値が空でない場合は、次のクエリに渡します。

IsAllSuccess

bool

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

AggregationResults

search.AggregationResults

集約結果です。

GroupByResults

search.GroupByResults

グループ化結果です。