Tüm Ürünler
Search
Belge Merkezi

:Vektörleri getirme (Go SDK V2)

Son Güncelleme:Oct 02, 2026

Vektör dizininde benzerlik araması yapmak için Go yazılım geliştirme kiti (SDK) V2 ile QueryVectors işlemini çağırabilirsiniz.

İzinler

Varsayılan olarak bir Alibaba Cloud hesabında tam izinler bulunurken RAM kullanıcısı veya RAM rolünde herhangi bir izin bulunmaz. Alibaba Cloud hesabı sahibi veya yönetici, izinleri bir RAM ilkesi veya paket ilkesi kullanarak vermelidir.


API


Eylem


Açıklama


QueryVectors


oss:QueryVectors


Vektör verilerini sorgular.

Yöntem tanımı

func (c *VectorsClient) QueryVectors(ctx context.Context, request *QueryVectorsRequest, optFns ...func(*oss.Options)) (*QueryVectorsResult, error) 

İstek parametreleri


Parametre


Tür


Açıklama


ctx


context.Context


İstek bağlamı.


request


*QueryVectorsRequest


Sorgu vektörü, filtre koşulu ve döndürülecek sonuç sayısı dahil olmak üzere istek parametrelerini ayarlar. Daha fazla bilgi için bkz. QueryVectorsRequest.


optFns


...func(*Options)

(İsteğe bağlı) Arayüz düzeyindeki yapılandırma parametreleri.

Daha fazla bilgi için bkz. Options.

Dönüş değerleri


Parametre


Tür


Açıklama


result


*QueryVectorsResult


Dönüş değeri. Bu parametre yalnızca err boş (nil) olduğunda geçerlidir. Daha fazla bilgi için bkz. QueryVectorsResult.


err


error


Hata iletisi. İşlem başarılı olursa bu parametre boş (nil) olur.

Örnek kod

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", "", "The region where the vector bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the vector bucket.")
	flag.StringVar(&accountId, "account-id", "", "The ID of the Alibaba Cloud account.")
	flag.StringVar(&indexName, "index", "", "The name of the vector index.")
}

func main() {
	flag.Parse()
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	if len(accountId) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, account-id required")
	}

	if len(indexName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, index required")
	}

	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region).WithAccountId(accountId).
		// To access over the public internet, set this to false or remove this line.
		WithUseInternalEndpoint(true)

	client := vectors.NewVectorsClient(cfg)

	request := &vectors.QueryVectorsRequest{
		Bucket:    oss.Ptr(bucketName),
		IndexName: oss.Ptr(indexName),
		Filter: map[string]any{
			"$and": []map[string]any{
				{
					"type": map[string]any{
						"$in": []string{"comedy", "documentary"},
					},
				},
			},
		},
		QueryVector: map[string]any{
			"float32": []float32{float32(32)},
		},
		ReturnMetadata: oss.Ptr(true),
		ReturnDistance: oss.Ptr(true),
		TopK:           oss.Ptr(10),
	}
	result, err := client.QueryVectors(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to query vectors %v", err)
	}
	log.Printf("query vectors result:%#v\n", result)
}

Referanslar

Vektörleri sorgulamaya ilişkin eksiksiz örnek kod için bkz. query_vectors.go.