全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

管理向量(Go)

最近更新时间:2026-11-11 10:30:12

写入向量

以下代码用于写入向量:

package main

import (
    "fmt"
    "github.com/ks3sdklib/aws-sdk-go/aws"
    "github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
    "github.com/ks3sdklib/aws-sdk-go/aws/credentials"
    "github.com/ks3sdklib/aws-sdk-go/service/vectors"
)

func main() {
    // 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
    cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
    // 创建KS3向量桶客户端,更多配置项请查看初始化文档
    client := vectors.New(&aws.Config{
        Credentials: cre,                                 // 访问凭证
        Region:      "BEIJING",                           // 访问地域
        Endpoint:    "ks3vectors-cn-beijing.ksyuncs.com", // 向量服务域名
    })
    // 填写向量桶名称
    bucket := "<bucket_name>"
    // 填写向量索引名称
    indexName := "<index_name>"
    // 写入向量
    resp, err := client.PutVectors(&vectors.PutVectorsInput{
        VectorBucketName: aws.String(bucket),    // 向量桶名称,必填
        IndexName:        aws.String(indexName), // 索引名称,必填
        Vectors: []*vectors.Vector{
            {
                Key: aws.String("vec1"), // 向量主键,索引内唯一,必填
                Data: &vectors.VectorData{ // 向量数据,维度与数据类型须与索引匹配,必填
                    Float32: []float32{1, 2, 3, 4}, // 向量分量数组
                },
                Metadata: map[string]interface{}{"color": "red"}, // 向量元数据,非必填
            },
            {
                Key: aws.String("vec2"),
                Data: &vectors.VectorData{
                    Float32: []float32{5, 6, 7, 8},
                },
                Metadata: map[string]interface{}{"color": "blue"},
            },
        },
    })
    if err != nil {
        panic(err)
    }
    fmt.Println("结果:\n", awsutil.StringValue(resp))
}

获取向量

以下代码用于获取向量:

package main

import (
    "fmt"
    "github.com/ks3sdklib/aws-sdk-go/aws"
    "github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
    "github.com/ks3sdklib/aws-sdk-go/aws/credentials"
    "github.com/ks3sdklib/aws-sdk-go/service/vectors"
)

func main() {
    // 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
    cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
    // 创建KS3向量桶客户端,更多配置项请查看初始化文档
    client := vectors.New(&aws.Config{
        Credentials: cre,                                 // 访问凭证
        Region:      "BEIJING",                           // 访问地域
        Endpoint:    "ks3vectors-cn-beijing.ksyuncs.com", // 向量服务域名
    })
    // 填写向量桶名称
    bucket := "<bucket_name>"
    // 填写向量索引名称
    indexName := "<index_name>"
    // 获取向量
    resp, err := client.GetVectors(&vectors.GetVectorsInput{
        VectorBucketName: aws.String(bucket),                                // 向量桶名称,必填
        IndexName:        aws.String(indexName),                             // 索引名称,必填
        Keys:             []*string{aws.String("vec1"), aws.String("vec2")}, // 目标向量主键列表,必填
        ReturnData:       aws.Boolean(true),                                 // 是否返回向量数据,非必填
        ReturnMetadata:   aws.Boolean(true),                                 // 是否返回向量元数据,非必填
    })
    if err != nil {
        panic(err)
    }
    fmt.Println("结果:\n", awsutil.StringValue(resp))
}

列举向量

以下代码用于列举向量:

package main

import (
    "fmt"
    "github.com/ks3sdklib/aws-sdk-go/aws"
    "github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
    "github.com/ks3sdklib/aws-sdk-go/aws/credentials"
    "github.com/ks3sdklib/aws-sdk-go/service/vectors"
)

func main() {
    // 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
    cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
    // 创建KS3向量桶客户端,更多配置项请查看初始化文档
    client := vectors.New(&aws.Config{
        Credentials: cre,                                 // 访问凭证
        Region:      "BEIJING",                           // 访问地域
        Endpoint:    "ks3vectors-cn-beijing.ksyuncs.com", // 向量服务域名
    })
    // 填写向量桶名称
    bucket := "<bucket_name>"
    // 填写向量索引名称
    indexName := "<index_name>"
    // 列举向量
    resp, err := client.ListVectors(&vectors.ListVectorsInput{
        VectorBucketName: aws.String(bucket),    // 向量桶名称,必填
        IndexName:        aws.String(indexName), // 索引名称,必填
        MaxResults:       aws.Long(100),         // 单次返回的最大数量,非必填
        ReturnData:       aws.Boolean(true),     // 是否返回向量数据,非必填
        ReturnMetadata:   aws.Boolean(true),     // 是否返回向量元数据,非必填
    })
    if err != nil {
        panic(err)
    }
    fmt.Println("结果:\n", awsutil.StringValue(resp))
}

删除向量

以下代码用于删除向量:

package main

import (
    "fmt"
    "github.com/ks3sdklib/aws-sdk-go/aws"
    "github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
    "github.com/ks3sdklib/aws-sdk-go/aws/credentials"
    "github.com/ks3sdklib/aws-sdk-go/service/vectors"
)

func main() {
    // 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
    cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
    // 创建KS3向量桶客户端,更多配置项请查看初始化文档
    client := vectors.New(&aws.Config{
        Credentials: cre,                                 // 访问凭证
        Region:      "BEIJING",                           // 访问地域
        Endpoint:    "ks3vectors-cn-beijing.ksyuncs.com", // 向量服务域名
    })
    // 填写向量桶名称
    bucket := "<bucket_name>"
    // 填写向量索引名称
    indexName := "<index_name>"
    // 删除向量
    resp, err := client.DeleteVectors(&vectors.DeleteVectorsInput{
        VectorBucketName: aws.String(bucket),                                // 向量桶名称,必填
        IndexName:        aws.String(indexName),                             // 索引名称,必填
        Keys:             []*string{aws.String("vec1"), aws.String("vec2")}, // 要删除的向量主键列表,必填
    })
    if err != nil {
        panic(err)
    }
    fmt.Println("结果:\n", awsutil.StringValue(resp))
}

相似性检索向量

以下代码用于相似性检索向量:

package main

import (
    "fmt"
    "github.com/ks3sdklib/aws-sdk-go/aws"
    "github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
    "github.com/ks3sdklib/aws-sdk-go/aws/credentials"
    "github.com/ks3sdklib/aws-sdk-go/service/vectors"
)

func main() {
    // 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换为实际值
    cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
    // 创建KS3向量桶客户端,更多配置项请查看初始化文档
    client := vectors.New(&aws.Config{
        Credentials: cre,                                 // 访问凭证
        Region:      "BEIJING",                           // 访问地域
        Endpoint:    "ks3vectors-cn-beijing.ksyuncs.com", // 向量服务域名
    })
    // 填写向量桶名称
    bucket := "<bucket_name>"
    // 填写向量索引名称
    indexName := "<index_name>"
    // 相似性检索向量
    resp, err := client.QueryVectors(&vectors.QueryVectorsInput{
        VectorBucketName: aws.String(bucket),    // 向量桶名称,必填
        IndexName:        aws.String(indexName), // 索引名称,必填
        QueryVector: &vectors.VectorData{ // 查询向量,维度须与索引匹配,必填
            Float32: []float32{1, 2, 3, 4}, // 向量分量数组
        },
        TopK:           aws.Long(10),                                                          // 返回的最近邻结果数,必填
        Filter:         map[string]interface{}{"color": map[string]interface{}{"$eq": "red"}}, // 元数据预过滤器,非必填
        ReturnData:     aws.Boolean(true),                                                     // 是否返回向量数据,非必填
        ReturnMetadata: aws.Boolean(true),                                                     // 是否返回向量元数据,非必填
        ReturnDistance: aws.Boolean(true),                                                     // 是否返回相似度距离,非必填
    })
    if err != nil {
        panic(err)
    }
    fmt.Println("结果:\n", awsutil.StringValue(resp))
}

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈