向量数据库VikingDB
您可以通过主键过滤能力在向量数据库中通过主键限定结果范围。
主键值来自 Collection 的主键字段:使用自定义主键时,填写写入数据时该主键字段的值;未指定主键时系统使用自动生成的 AUTO_ID,可从控制台数据预览或检索/点查返回结果的 id 字段取得。传入值的类型必须与主键字段类型一致。
主键过滤是通用检索能力,您在检索的相关接口中传入PrimaryKeyIn或PrimaryKeyNotIn参数来启用标量过滤能力。
参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
|---|---|---|---|---|
primaryKeyIn | list或list | 否 | None | 设定此参数,会限定仅在主键列表范围内进行检索。 |
primaryKeyNotIn | list或list | 否 | None | 设定此参数,将把主键列表范围内的数据从检索结果中排除 。 |
运行以下示例前,请根据实际环境完成依赖安装和参数配置,并替换代码中的示例值。
//获取指定索引,程序初始化时调用即可,无需重复调用 Index index = vikingDBService.getIndex("test_text", "test_index_text");
List<String> outputField = Arrays.asList("f_id", "f_string", "f_int64"); List<DataObject> datas = index.search(new SearchParam() .setVectorOrder(new VectorOrder().setVector(DataUtil.genRandomVector(4)).build()) .setOutputFields(outputField) .setPartition("default") .setPrimaryKeyIn(Arrays.asList(0, 1, 2, 3, 4, 5)) .setPrimaryKeyNotIn(Arrays.asList(2, 3)) .setLimit(20) .build()); System.out.println(datas);
Java 调用执行上面的任务,返回 List
属性 | 说明 |
|---|---|
id | 主键 id。 |
fields | 请求返回中的 fields 字段,是具体的数据,map 类型。 |
score | 表示找到的向量和输入的向量的匹配程度。 |