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

Tablestore:ベクター検索

最終更新日:Aug 12, 2026

Tablestore SDK for Go を使用して、クエリベクトルに最も類似するベクトルを持つ TopK 行を検索します。

前提条件

開始する前に、次の準備を完了してください。

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

  • ベクトルフィールドを含む検索インデックスを作成します。詳細については、「検索インデックスの作成」をご参照ください。

説明

ベクター検索では、KnnVectorQuery を使用してクエリベクトルとベクトルフィールド内のベクトルとの間の距離を計算し、最も類似した TopK 行を返します。Filter を使用して候補を制限し、MinScore を使用してスコアのしきい値を下回る行を除外できます。

重要

ベクトルフィールドの数と次元、および TopK などのパラメーターには使用制限があります。詳細については、「検索インデックスの使用制限」をご参照ください。

説明

検索インデックスには複数のサーバー側パーティションが含まれています。各パーティションは独自の TopK の最近傍行を返し、コーディネーターが結果をマージします。したがって、トークンベースのページネーションを使用する場合、取得可能な行の総数はインデックスパーティションの数に依存します。

func (client *tablestore.TableStoreClient) Search(request *tablestore.SearchRequest) (*tablestore.SearchResponse, error)
query := &search.KnnVectorQuery{
    FieldName:          "embedding",
    TopK:               proto.Int32(10),
    NumCandidates:      proto.Int32(100),
    Float32QueryVector: []float32{1, 0, 0, 0},
    MinScore:           proto.Float32(0.1),
    Filter: &search.TermQuery{
        FieldName: "category",
        Term:      "books",
    },
}
searchQuery := search.NewSearchQuery().
    SetQuery(query).
    SetSort(&search.Sort{Sorters: []search.Sorter{search.NewScoreSort()}})

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

fmt.Println(response.SearchHits)

パラメーター

クエリリクエスト

名前

説明

TableName (必須)

string

データテーブルの名前。

IndexName (必須)

string

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

SearchQuery (必須)

search.SearchQuery

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

ColumnsToGet (オプション)

tablestore.ColumnsToGet

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

RoutingValues (オプション)

[]tablestore.PrimaryKey

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

TimeoutMs (オプション)

int32

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

クエリ設定

名前

説明

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

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

ベクトルクエリ条件

名前

説明

FieldName (必須)

string

ベクトルフィールドの名前。

TopK (必須)

int32

返す最近傍行の数。値を大きくすると、一般的に再現率は向上しますが、レイテンシーとコストが増加します。

Float32QueryVector (必須)

[]float32

クエリベクトル。次元は、インデックスフィールドの設定と一致する必要があります。

Filter (オプション)

search.Query

候補行のフィルター。ベクター検索を除くすべてのクエリタイプがサポートされています。

MinScore (オプション)

float32

最小スコアのしきい値。値は 0 以上である必要があります。デフォルト値:0。スコアがこの値より大きい行のみが返されます。

NumCandidates (オプション)

int32

再ランキングの候補ベクトルの数。値は TopK 以上である必要があります。値を大きくすると、一般的に再現率は向上しますが、レイテンシーは増加します。

Weight (オプション)

float32

クエリ条件の関連性の重み。

返される列

名前

説明

Columns (オプション)

[]string

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

ReturnAll (オプション)

bool

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

ReturnAllFromIndex (オプション)

bool

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

レスポンス

名前

説明

TotalCount

int64

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

Rows

[]*tablestore.Row

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

SearchHits

[]*tablestore.SearchHit

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

NextToken

[]byte

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

IsAllSuccess

bool

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

AggregationResults

search.AggregationResults

集計結果。

GroupByResults

search.GroupByResults

グループ化の結果。