向量数据库VikingDB
您可以通过主键过滤能力在向量数据库中通过主键限定结果范围。
主键值来自 Collection 的主键字段:使用自定义主键时,填写写入数据时该主键字段的值;未指定主键时系统使用自动生成的 AUTO_ID,可从控制台数据预览或检索/点查返回结果的 id 字段取得。传入值的类型必须与主键字段类型一致。
主键过滤是通用检索能力,您在检索的相关接口中传入PrimaryKeyIn或PrimaryKeyNotIn参数来启用标量过滤能力。
参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
|---|---|---|---|---|
primaryKeyIn | list或list | 否 | None | 设定此参数,会限定仅在主键列表范围内进行检索。 |
primaryKeyNotIn | list或list | 否 | None | 设定此参数,将把主键列表范围内的数据从检索结果中排除 。 |
// 获取指定索引,程序初始化时调用即可,无需重复调用 index, _ := service.GetIndex("<YOUR_COLLECTION_NAME>", "<YOUR_INDEX_NAME>")
filter := map[string]interface{}{ "op": "range", "field": "f_int64", "gt": 10, } searchOpt := vikingdb.NewSearchOptions().SetFilter(filter).SetLimit(5). SetPrimaryKeyIn([]interface{}{"1", "2", "3", "4"}). SetPrimaryKeyNotIn([]interface{}{"5"}). SetRetry(true) datas, err := index.Search(nil, searchOpt) if err != nil { panic(err) } for _, data := range datas { fmt.Println(data.Fields, data.Score) }
Go 调用执行上面的任务,返回 List
属性 | 说明 |
|---|---|
Id | 主键 id。 |
Fields | 请求返回中的 fields 字段,是具体的数据,map 类型。 |
Score | 表示找到的向量和输入的向量的匹配程度。 |