有奖捉虫:行业应用 & 管理与支持文档专题 HOT

相似性检索

相似度检索是基于多维向量进行 相似度计算 的检索方式。相似度计算通过计算查询向量与数据库存储的向量之间的相似度,找到与查询的多维向量最相似的文档。腾讯云向量数据库(Tencent Cloud VectorDB)较全面覆盖各种相似度检索场景。您可以根据实际存储数据的特点与应用场景,选择不同的检索方式。
数据库类别
支持方式
Base Database
支持指定多维向量数值,检索与指定的多维向量数值最相似的 Top K 条文档。
支持指定 id(Document ID),检索与该 id 的向量值最相似的 Top K 条文档。
应用 Embedding 功能,支持输入原始文本,检索与该文本信息最相似的 Top K 条文档。
支持指定 id、多维向量或原始文本,搭配标量字段的 Filter 表达式一并检索与 id、多维向量、原始文本相似的文档。
支持批量进行相似度检索,即支持输入多条向量数据值、多个 id 分别检索与每一个向量数值、每一个 id 相似的 Top K 条数据。
AI Database
支持输入文本信息,在指定的文件 id(DocumentSet ID)或文件名,检索相似的文本内容。
支持指定多个文件 id(DocumentSet ID)或文件名,单次批量检索多个文件的信息,最大数量为 20 个。
支持指定标量字段的 Filter 表达式 过滤文件信息。
支持指定多个文件 id(DocumentSet ID)或文件名,并搭配标量字段的 Filter 表达式一起过滤多个文件信息。

精确查询

精确查询是基于标量字段(指一个单独的数值,例如文本、数值或日期等字段)精确检索具体数据的查询方式,例如,根据 id(Document ID)查询对应向量数据,或者根据文件名查询。这种查询方式适用于根据单个属性进行数据查询的场景。
数据库类别
精确查询支持方式
Base Database
支持根据指定的 id(Document ID),检索对应的向量数据。
支持指定多个 id(Document ID),单次批量查询对应的多条数据,最大数量为20个。
支持指定标量字段的 Filter 表达式 过滤数据。
支持指定查询起始位置和返回数量,查询该范围的数据。
支持指定多个 id(Document ID),并搭配标量字段的 Filter 表达式一起过滤数据。
AI Database
支持根据指定的文件 id(DocumentSet ID)或文件名,检索对应的文件信息。
支持指定多个文件 id(DocumentSet ID)或文件名,单次批量查询对应的多个文件,最大数量为20个。
支持指定标量字段的 Filter 表达式 过滤文件信息。
支持指定查询起始位置和返回数量,查询该范围的文件。
支持指定多个文件 id(DocumentSet ID)或文件名,并搭配标量字段的 Filter 表达式一起过滤数据。

混合检索

混合检索是基于标量字段和向量字段,搭配自定义的标量字段(具有 Document 属性的一个单独数值字段,例如 id、文本、数值或日期等)的 Filter 条件表达式 作为查询条件,综合查询文档或进行向量相似度检索。这种检索方式适用于综合多个属性进行查询的场景。

主要功能

如下为 Base 类 Database 支持使用 Filter 表达式的场景,对应 AI 类数据库 DocumentSet 级别下的操作,同样适用。
在精确查询时,支持指定 Filter 字段的条件表达式过滤需查询的文档。具体 API 接口,请参见 /document/query
在相似度检索时,支持指定 Filter 字段的条件表达式过滤需检索的文档。具体 API 接口,请参见 /document/search
在删除数据时,支持指定 Filter 字段的条件表达式过滤需删除的文档。具体 API 接口,请参见 /document/delete
在更新数据时,支持指定 Filter 字段的条件表达式进过滤需更新的文档。具体 API 接口,请参见 /document/update

Filter 条件表达式

条件表达式是一种用于筛选文档的查询条件。它可以根据文档中的字段值来进行筛选。通常,条件表达式由一个或多个条件组成,每个条件包括一个字段名、一个比较运算符和一个值。

逻辑运算表达式

腾讯云向量数据库(Tencent Cloud VectorDB)所支持的逻辑运算符包括 and、or、not,如下表所示。
运算符
描述
示例
and
game_tag="Robert" and (video_tag="dance" or video_tag="music")
or
game_tag="1000" or video_tag="dance"
not
game_tag="1000" and not( video_tag="dance")

字符串类型表达式

字符串类型的值必须要用英文双引号括起来。字符串类型可以用单值或多值匹配。腾讯云向量数据库当前所支持的运算符如下表所示。
运算符
描述
示例
in
匹配任意一个字符串值
game_tag in("Detective","Action Roguelike","Party-Based RPG","1980s")
not in
排除所有字符串值
game_tag not in ("Detective")
=
匹配单个字符串值
game_tag="Detective"
!=
排除单个字符串值
game_tag!="Detective"

数值类型表达式

腾讯云向量数据库标量索引字段的数值类型当前仅支持 unit64,暂不支持负数和浮点型。如有需求,可以把负数和浮点型转换成整型。所支持的运算符,如下表所示。
运算符
描述
示例
>
大于
exipred_time>1623388524
>=
大于等于
exipred_time>=1623388524
=
等于
exipred_time=1623388524
<
小于
exipred_time<1623388524
<=
小于等于
exipred_time<=1623388524

数组(Array)类型表达式

数据类型目前仅只是数组元素为 string 类型。具体运算符,请参见下表。
运算符
描述
示例
include
包含数组元素之一
name include (\\"Bob\\", \\"Jack\\")
exclude
排除数组元素之一
name exclude (\\"Bob\\", \\"Jack\\")
include all
全包含数组元素
name include all (\\"Bob\\", \\"Jack\\")

应用示例

本文给出混合检索的请求示例,帮助您直观地了解混合检索的方式。如下示例,使用 /document/search 接口,综合检索满足bookName 字段条件表达式("bookName in (\\"三国演义\\",\\"西游记\\")"),与指定向量"vectors": [[0.3123,0.43,0.213]])最相似的 Top3 的数据。
curl -i -X POST \\
-H 'Content-Type: application/json' \\
-H 'Authorization: Bearer account=root&api_key=A5VOgsMpGWJhUI0WmUbY********************' \\
http://10.0.X.X:80/document/search \\
-d '{
"database": "db-test",
"collection": "book-vector",
"search": {
"vectors": [
[
0.3123,
0.43,
0.213
]
],
"params": {
"ef": 200
},
"retrieveVector": true,
"filter": "bookName in (\\"三国演义\\",\\"西游记\\")",
"limit": 3
}
}'
最终返回满足过滤条件最相近的文档数据,结果如下所示:
说明:
每一个查询结果按照相似程度由高到低逐级排列,且均返回 Top K 条相似度计算的结果。其中,K 为 limit 设置的数值。如果检索的数据不足 K 条,则返回实际的 Document 数量。
{
"code": 0,
"msg": "Operation success",
"documents": [
[
{
"id": "0001",
"vector": [
0.21230000257492066,
0.23000000417232514,
0.21299999952316285
],
"score": 0.97142,
"bookName": "三国演义",
"page": 21,
"author": "罗贯中"
},
{
"id": "0002",
"vector": [
0.21230000257492066,
0.2199999988079071,
0.21299999952316285
],
"score": 0.96688,
"bookName": "西游记",
"author": "吴承恩",
"page": 22
}
]
]
}
?


http://www.vxiaotou.com