您可以通过主键过滤能力在向量数据库中通过主键限定结果范围。
说明
主键过滤是通用检索能力,您在检索的相关接口中传入primary_key_in或primary_key_not_in参数来启用标量过滤能力。
参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
---|---|---|---|---|
primary_key_in | list | 否 | None | 设定此参数,会限定仅在主键列表范围内进行检索。 |
primary_key_not_in | list | 否 | None | 设定此参数,将把主键列表范围内的数据从检索结果中排除 。 |
# 获取指定索引,程序初始化时调用即可,无需重复调用 index = vikingdb_service.get_index("example_text", "example_index_text")
datas = index.search(order=None, limit=5, primary_key_in=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], primary_key_not_in=[1]) for data in datas: print(data.id, data.fields, data.score) print("========================") datas = index.search_by_id(id=2, limit=5, output_fields=["f_id", 'f_vector'], primary_key_in=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], primary_key_not_in=[1]) for data in datas: print(data.id, data.fields, data.score) print("========================") datas = index.search_by_vector(vector=[0,0,0,0], limit=10, primary_key_in=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], primary_key_not_in=[5, 6, 7, 8, 9, 10]) for data in datas: print(data.id, data.fields, data.score) print("========================")