searchById 用于主键 id 检索。根据主键 id,搜索与其距离最近的 limit 个向量。
说明
参数 | 类型 | 是否必选 | 参数说明 |
|---|---|---|---|
ID | interface{} | 是 | 主键 id。 |
Filter | map[string]interface{} | 否 | 过滤条件,详见标量过滤
|
OutputFields | []string | 否 | 要返回的标量字段列表.
|
Limit | int | 否 | 检索结果数量,最大5000个。 |
Offset | Int | 否 | 偏移量。仅分页场景下使用,不建议设置过大值,否则有深分页影响。默认值为0。设置值至少为0,语义和mysql的offset相同。 |
Advance | SearchAdvance | 否 | 高级参数,详见检索公共参数 |
属性 | 类型 | 说明 |
|---|---|---|
Data | []SearchItem | 见下 |
FilterMatchedCount | Int | 筛选匹配数量 |
TotalReturnCount | Int | 返回数量 |
RealTextQuery | string | |
TokenUsage | interface{} | 使用token |
属性 | 类型 | 说明 |
|---|---|---|
ID | interface{} | 主键 id。 |
Fields | map[string]interface{} | 请求返回中的 fields 字段 |
Score | float64 | 相似度 |
AnnScore | float64 | ann得分 |
package main import ( "context" "encoding/json" "fmt" "github.com/volcengine/vikingdb-go-sdk/vector" "github.com/volcengine/vikingdb-go-sdk/vector/model" "os" "time" ) func main() { var ( accessKey = os.Getenv("VIKINGDB_AK") secretKey = os.Getenv("VIKINGDB_SK") endpoint = "https://api-vikingdb.vikingdb.cn-beijing.volces.com" region = "cn-beijing" ) client, err := vector.New( vector.AuthIAM(accessKey, secretKey), // IAM auth // vector.AuthAPIKey(apiKey), // APIKey auth vector.WithEndpoint(endpoint), vector.WithRegion(region), vector.WithTimeout(time.Second*30), vector.WithMaxRetries(3), ) if err != nil { fmt.Println("New client failed, err: ", err) panic(err) } ctx := context.Background() resp, err := client.Index(model.IndexLocator{ CollectionLocator: model.CollectionLocator{ CollectionName: "Your Collection Name", }, IndexName: "Your Index Name", }).SearchByID(ctx, model.SearchByIDRequest{ ID: 1, }) if err != nil { fmt.Println("SearchByID failed, err: ", err) panic(err) } jsonData, err := json.Marshal(resp.Result) if err != nil { fmt.Println("Marshal result failed, err: ", err) panic(err) } fmt.Println(string(jsonData)) }