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

Tablestore:完全一致検索

最終更新日:Aug 08, 2026

Tablestore SDK for Go で完全一致検索を使用して、検索インデックス内のすべての行に一致させます。

前提条件

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

説明

完全一致検索ではフィールドやクエリ値を指定せず、多次元インデックス内のすべての行にマッチします。クエリタイプを MatchAllQuery に設定します。

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

以下の例ではデータをクエリし、最大 10 行とマッチした行の総数を返します。

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

query := &search.MatchAllQuery{}
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)
説明

MatchAllQuery は、マッチしたすべての行に同じ関連スコアを割り当てます。明示的にソート順を設定しない場合、結果の順序は保証されません。行データを返さずにマッチした行数をカウントするには、SetLimit を 0 に設定します。すべてのマッチ行をカウントすると、クエリのオーバーヘッドが増加します。

パラメーター

クエリリクエスト

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 を指定すると、行は返されません。

SetCollapse (オプション)

*search.Collapse

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

SetSort (オプション)

*search.Sort

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

SetGetTotalCount (オプション)

bool

マッチしたすべての行をカウントするかどうかを指定します。デフォルト値は false です。

SetToken (オプション)

[]byte

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

SetSearchFilter (オプション)

*search.SearchFilter

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

Aggregation (オプション)

...search.Aggregation

集約を構成します。詳細については、「集約」をご参照ください。

GroupBy (オプション)

...search.GroupBy

グループ化を構成します。詳細については、「集約」をご参照ください。

返却カラム

request.ColumnsToGettablestore.ColumnsToGet 型で、以下のパラメーターを含みます。

名前

説明

Columns (オプション)

[]string

返却する属性列です。このパラメーターは、ReturnAll および ReturnAllFromIndex の両方が false の場合にのみ有効です。

ReturnAll (オプション)

bool

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

ReturnAllFromIndex (オプション)

bool

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

応答

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

名前

説明

TotalCount

int64

マッチした行の総数です。この値は SetGetTotalCount の設定に依存します。

Rows

[]*tablestore.Row

現在のクエリで返された行です。その数は SetLimit で指定された値を超えることはありません。

SearchHits

[]*tablestore.SearchHit

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

NextToken

[]byte

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

IsAllSuccess

bool

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

AggregationResults

search.AggregationResults

集約結果です。

GroupByResults

search.GroupByResults

グループ化結果です。