条件过滤检索
背景介绍
在大多数业务场景中,单纯使用向量进行相似性检索并无法满足业务需求,通常需要在满足特定过滤条件、或者特定的"标签"的前提下,再进行相似性检索。
向量检索服务 DashVector 支持条件过滤和向量相似性检索相结合,在精确满足过滤条件的前提下进行高效的向量检索。
条件过滤检索示例
说明
需要使用您的 api-key 替换示例中的 YOUR_API_KEY、您的 Cluster Endpoint 替换示例中的 YOUR_CLUSTER_ENDPOINT,代码才能正常运行。
本示例需要参考新建Collection-使用示例
插入带有 Field 的数据
Python
说明
在新建 Collection-使用示例中,创建了名称为 quickstart 的 Collection,该 Collection 定义了 3 个 Field({'name': str, 'weight': float, 'age': int}
)。DashVector 具有 Schema Free 的特性,因此可以在插入 Do 时,随意指定创建 Collection 时未定义的 Field,如上述示例中的male
Field。
通过 filter 进行条件过滤检索
Python
DashVector 支持的数据类型
当前 DashVector 支持 Python 的 4 种基础数据类型:
str
float
int
bool
重要
Python 的 int 类型可表达无限大小的整数,当前 DashVector 仅支持 32 位整数,范围为-2,147,483,648~2,147,483,647,需要用户自行保证数据未溢出。
比较运算符
通过Field 比较运算符 常量
的组合生成比较表达式,说明及示例如下:
成员运算符
通过Field 成员运算符 常量
的组合生成比较表达式,说明及示例如下:
字符串运算符
通过 Field 字符串运算符 常量的组合生成匹配表达式,说明及示例如下:
逻辑运算符
逻辑运算符用于组合多个表达式。
说明
可通过括号()
组合逻辑运算符,()
拥有更高优先级,如:expr1 and (expr2 or expr3)
,会优先计算(expr2 or expr3)
版权声明: 本文为 InfoQ 作者【DashVector】的原创文章。
原文链接:【http://xie.infoq.cn/article/49e5c62a5b5103826adc75f48】。文章转载请联系作者。
评论