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

Object Storage Service:ベクターインデックスの作成 (Go SDK V2)

最終更新日:Nov 09, 2025

Go SDK V2 を使用して PutVectorIndex 操作を呼び出し、ベクターバケットにベクターインデックスを作成します。

権限

デフォルトでは、Alibaba Cloud アカウントはすべての権限を持っています。 Alibaba Cloud アカウント下の Resource Access Management (RAM) ユーザーおよび RAM ロールは、デフォルトでは権限がありません。 Alibaba Cloud アカウントまたは管理者は、RAM ポリシーまたはバケットポリシーを使用して、RAM ユーザーまたは RAM ロールに権限を付与する必要があります。

API

アクション

説明

PutVectorIndex

oss:PutVectorIndex

ベクターインデックスを作成します。

メソッド定義

func (c *VectorsClient) PutVectorIndex(ctx context.Context, request *PutVectorIndexRequest, optFns ...func(*oss.Options)) (*PutVectorIndexResult, error) 

リクエストパラメーター

パラメーター

タイプ

説明

ctx

context.Context

リクエストコンテキスト。

request

*PutVectorIndexRequest

リクエストパラメーター。 詳細については、「PutVectorIndexRequest」をご参照ください。

optFns

...func(*Options)

(オプション) 操作レベルの構成パラメーター。

詳細については、「Options」をご参照ください。

戻り値

パラメーター

タイプ

説明

result

*PutVectorIndexResult

操作の戻り値。 このパラメーターは、err が nil の場合にのみ有効です。 詳細については、「PutVectorIndexResult」をご参照ください。

err

error

リクエストのステータス。 リクエストが失敗した場合、err は nil ではありません。

サンプルコード

package main

import (
	"context"
	"flag"
	"log"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/vectors"
)

var (
	region     string
	bucketName string
	accountId  string
	indexName  string
)

func init() {
	flag.StringVar(&region, "region", "", "ベクターバケットが配置されているリージョン。")
	flag.StringVar(&bucketName, "bucket", "", "ベクターバケットの名前。")
	flag.StringVar(&accountId, "account-id", "", "ベクターアカウントの ID。")
	flag.StringVar(&indexName, "index", "", "ベクターインデックスの名前。")
}

func main() {
	flag.Parse()
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("無効なパラメーターです。バケット名が必要です")
	}

	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("無効なパラメーターです。リージョンが必要です")
	}

	if len(accountId) == 0 {
		flag.PrintDefaults()
		log.Fatalf("無効なパラメーターです。accountId が必要です")
	}

	if len(indexName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("無効なパラメーターです。インデックスが必要です")
	}

	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region).WithAccountId(accountId)

	client := vectors.NewVectorsClient(cfg)

	request := &vectors.PutVectorIndexRequest{
		Bucket:         oss.Ptr(bucketName),
		DataType:       oss.Ptr("float32"),
		Dimension:      oss.Ptr(128),
		DistanceMetric: oss.Ptr("cosine"),
		IndexName:      oss.Ptr(indexName),
		Metadata: map[string]any{
			"nonFilterableMetadataKeys": []string{"foo", "bar"},
		},
	}
	result, err := client.PutVectorIndex(context.TODO(), request)
	if err != nil {
		log.Fatalf("ベクターインデックスの配置に失敗しました %v", err)
	}
	log.Printf("ベクターインデックスの配置結果: %#v\n", result)
}

リファレンス

ベクターインデックスを作成するための完全なサンプルコードについては、「put_vector_index.go」をご参照ください。