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

Tablestore:ブールクエリ

最終更新日:Aug 12, 2026

Tablestore SDK for Go では、ブールクエリを使用して、AND、OR、NOT、およびフィルターロジックで複数の条件を組み合わせます。

前提条件

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

説明

ブールクエリは、Must 句、Should 句、MustNot 句、および Filter 句を使用してサブクエリを組み合わせます。Must 句と Filter 句は一致する必要があり、Should 句は MinShouldMatch を満たす必要があり、MustNot 句は一致してはなりません。

func (client *tablestore.TableStoreClient) Search(request *tablestore.SearchRequest) (*tablestore.SearchResponse, error)

次の例では、データをクエリし、最大 10 行のデータと、一致した行の総数を返します。

tableName := "example_table"
indexName := "example_index"

query := &search.BoolQuery{MustQueries: []search.Query{&search.TermQuery{FieldName: "category", Term: "books"}}, MustNotQueries: []search.Query{&search.TermQuery{FieldName: "status", Term: "inactive"}}}
searchQuery := search.NewSearchQuery().
    SetQuery(query).
    SetLimit(10).
    SetGetTotalCount(true)

response, err := client.Search(&tablestore.SearchRequest{
    TableName:   tableName,
    IndexName:   indexName,
    SearchQuery: searchQuery,
    ColumnsToGet: &tablestore.ColumnsToGet{
        ReturnAllFromIndex: true,
    },
})
if err != nil {
    log.Fatal(err)
}

fmt.Println(response.TotalCount)
fmt.Println(response.Rows)

パラメーター

クエリリクエスト

requesttablestore.SearchRequest 型で、以下のパラメーターが含まれています。

名前

タイプ

説明

TableName (必須)

string

データテーブルの名前。

IndexName (必須)

string

検索インデックスの名前。

SearchQuery (必須)

search.SearchQuery

クエリ条件と共通のクエリ設定。

ColumnsToGet (オプション)

*tablestore.ColumnsToGet

返す列の設定。このパラメーターを省略した場合、プライマリキー列のみが返されます。

RoutingValues (オプション)

[]*tablestore.PrimaryKey

カスタムルーティングフィールドのプライマリキー値。カスタムルーティングが設定されていない場合は、このパラメーターを省略します。

TimeoutMs (オプション)

*int32

リクエストのタイムアウト期間 (ミリ秒単位)。

クエリ設定

search.NewSearchQuery()を呼び出してクエリ設定を作成し、以下のメソッドを使用して設定します。

名前

タイプ

説明

SetQuery (必須)

search.Query

クエリ条件を指定します。

SetOffset (オプション)

int32

開始位置を指定します。デフォルト値:0。オフセットベースのページネーションの場合、Offset + Limit は 100,000 を超えることはできません。

SetLimit (オプション)

int32

返される最大行数を指定します。デフォルト値:10。最大値:100。値が 0 の場合、行は返されません。

SetHighlight (オプション)

*search.Highlight

Text フィールドのサマリーとハイライトを設定します。詳細については、「サマリーとハイライト」をご参照ください。

SetCollapse (オプション)

*search.Collapse

クエリ結果を折りたたみます。詳細については、「クエリ結果の折りたたみ」をご参照ください。

SetSort (オプション)

*search.Sort

結果のソート順序を指定します。詳細については、「結果のソートとページネーション」をご参照ください。

SetGetTotalCount (オプション)

bool

一致したすべての行をカウントするかどうかを指定します。デフォルト値:false。

SetToken (オプション)

[]byte

前回のレスポンスで返されたNextToken 値を指定します。このメソッドは、トークンに前ページのソート条件が含まれているため、Sort をクリアします。トークンベースのページネーションを使用する場合は、Offset を指定しないでください。

SetSearchFilter (オプション)

*search.SearchFilter

クエリ後のフィルターを適用します。詳細については、「クエリ後フィルターの使用」をご参照ください。

Aggregation (オプション)

...search.Aggregation

アグリゲーションを設定します。詳細については、「アグリゲーション」をご参照ください。

GroupBy (オプション)

...search.GroupBy

グループ化を設定します。詳細については、「アグリゲーション」をご参照ください。

クエリ条件

クエリは search.BoolQuery 型で、以下のパラメーターが含まれています。

名前

タイプ

説明

MustQueries (オプション)

[]search.Query

一致する必要があるサブクエリ。サブクエリは AND で結合されます。

ShouldQueries (オプション)

[]search.Query

一致すべきサブクエリ。サブクエリは OR で結合されます。

MustNotQueries (オプション)

[]search.Query

一致してはならないサブクエリ。

FilterQueries (オプション)

[]search.Query

一致する必要があるが、関連性スコアには影響しないサブクエリ。

MinShouldMatch (オプション)

*string

一致する必要がある ShouldQueries の最小数またはパーセンテージ (275% など) を指定します。ShouldQueries のみが設定されている場合、デフォルトでは少なくとも 1 つのサブクエリが一致する必要があります。MustQueries、MustNotQueries、または FilterQueries も設定されている場合、デフォルトは 0 となり、ShouldQueries は関連度スコアにのみ寄与します。

Weight (オプション)

*float32

関連性の重み。この値は、結果がスコアでソートされる場合にのみ順序に影響します。

返却列

request.ColumnsToGettablestore.ColumnsToGet 型で、次のパラメーターが含まれています。

名前

タイプ

説明

Columns (オプション)

[]string

返す属性列。このパラメーターは、ReturnAllReturnAllFromIndex の両方が false の場合にのみ有効です。

ReturnAll (オプション)

bool

データテーブル内のすべての属性列を返すかどうかを指定します。デフォルト値:false。

ReturnAllFromIndex (オプション)

bool

インデックス化されたすべての属性列を返すかどうかを指定します。デフォルト値:false。このパラメーターと ReturnAll を同時に true に設定しないでください。

レスポンス

Search メソッドは tablestore.SearchResponse 値を返します。次の表では、主要なビジネスフィールドについて説明します。

名前

タイプ

説明

TotalCount

int64

一致した行の総数。この値は SetGetTotalCount に依存します。

Rows

[]*tablestore.Row

現在のクエリによって返される行。返される行数は SetLimit で指定された値を超えません。

SearchHits

[]*tablestore.SearchHit

検索ヒット。ハイライト、ネストされた内部ヒット、または関連性スコアを使用する場合は、このフィールドを読み取ります。

NextToken

[]byte

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

IsAllSuccess

bool

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

AggregationResults

search.AggregationResults

アグリゲーション結果。

GroupByResults

search.GroupByResults

グループ化結果。