有奖捉虫:行业应用 & 管理与支持文档专题 HOT
普通数据库下集合的数据操作支持精确查询、相似度查询、插入/替换数据、更新数据和删除数据。
精确查询
用于精确查找与查询条件完全匹配的向量,具体支持如下功能。
支持根据主键 id(Document ID),搭配自定义的标量字段的 Filter 表达式一并检索。
支持指定查询起始位置 offset 和返回数量 limit,实现数据 SCAN 能力。
相似度查询
用于查找与给定查询向量相似的向量。
支持根据指定 id 或向量数值进行相似度检索,返回指定的 Top K 个最相似的 Document。
支持根据主键 id(Document ID)或 向量数值,搭配自定义的标量字段的 Filter 表达式一并进行相似度检索。
如果创建集合时,已开启 Embedding 并配置参数,支持输入原始文本检索与输入文本相似的文档,同时,支持搭配标量字段的 Filter 表达式一并检索。
插入/替换数据
用于给创建集合中插入向量数据。如果创建集合时,已开启 Embedding 并配置参数,则仅需要插入文本信息,Embedding 服务会自动将文本信息转换为向量数据,存入数据库。
更新数据
用于对通过主键(Document ID)与 Filter 表达式过滤检索 Document ,对 Document 的部分字段进行更新。同时,支持新增字段。
删除数据
用于删除指定 id(Document ID)的文档,且支持设置 Filter 表达式,删除满足 Filter 表达式的数据。

前提条件

插入/替换数据

1. 在左侧库表栏,展开数据库和集合。
2. 打开数据操作页面。
方式一:单击集合名称。
方式二:鼠标悬停至待操作集合名称处,在右侧单击
?
,选择数据操作
?
3. 选择插入/替换页签。
?
4. 配置输入参数。
输入方式:仅支持 JSON
输入参数:参数说明如下表所示。
字段名
参数含义
子参数
是否必选
配置方法及要求
buildIndex
指定是否需要重新创建索引。
-
取值如下所示:
true:重新创建索引。默认值是 true
false:不重新创建索引。
注意:
创建集合时选择的索引类型为 IVF 系列,则该参数必须配置为 false。IVF 系列索引需要插入原始数据之后,再重建索引
documents
指定要插入的 Document数据,是一个数组,支持单次插入一条或者多条 Document,最大可插入 1000 条。
id
Document 主键,长度限制为[1,128]。
vector
表示文档的向量值,请务必使用32位浮点数存储向量数据。
原始文本字段名
该参数为创建集合时,开启 Embedding 后配置的原始文本字段名。输入参数示例为 text,您可以自定义其他便于识别的字段名。
说明:
写入原始文本数据,系统会自动从该字段中提取原始文本信息,并将其转换为向量数据,并将原始文本以及转化后的向量数据一起存储在数据库中。
other_scalar_field
其他标量字段,用于存储文档的其他信息。例如:请求示例中的 bookName、author、page。
5. 配置完成后,在输入参数下方单击执行
执行结果区域查看执行结果。
说明:
若需要重新输入 JSON 语句,请在下方单击重置后重新输入 JSON 语句。

插入/替换数据输入参数及执行结果示例

未开启 Embedding
开启 Embedding
{
"database": "db-test",
"collection": "book-vector",
"documents": [
{
"id": "0001",
"vector": [
0.2123,
0.23,
0.213
],
"author": "罗贯中",
"bookName": "三国演义",
"page": 21
},
{
"id": "0002",
"vector": [
0.2123,
0.22,
0.213
],
"author": "吴承恩",
"bookName": "西游记",
"page": 22
},
{
"id": "0003",
"vector": [
0.2123,
0.21,
0.213
],
"author": "曹雪芹",
"bookName": "红楼梦",
"page": 23
}
]
}
?
{
"database": "db-test",
"collection": "book-emb",
"buildIndex": true,
"documents": [
{
"id": "0001",
"text": "话说天下大势,分久必合,合久必分。",
"author": "罗贯中",
"bookName": "三国演义",
"page": 21
},
{
"id": "0002",
"text": "混沌未分天地乱,茫茫渺渺无人间。",
"author": "吴承恩",
"bookName": "西游记",
"page": 22
},
{
"id": "0003",
"text": "甄士隐梦幻识通灵,贾雨村风尘怀闺秀。",
"author": "曹雪芹",
"bookName": "红楼梦",
"page": 23
}
]
}
?

精确查询

1. 在左侧库表栏,展开数据库和集合。
2. 打开数据操作页面。
方式一:单击集合名称。
方式二:鼠标悬停至待操作集合,在右侧单击
?
,选择数据操作
3. 选择精确查询页签。
?
4. 配置输入参数。
输入方式:表单JSON
输入参数:参数字段说明如下表所示。
参数(字段)名
是否必选
默认值
说明
filter(根据条件表达式查询)
NULL
请输入需要查询的条件表达式。 条件表达式规则请参见 混合检索
documentIds(主键 ID)
表示要查询的文档的所有 ID,支持批量查询,数组元素范围[1,20]。
retrieveVector(是否返回向量字段)
false
标识是否需要返回检索结果的向量值。
true:需要。
false:不需要。默认为 false。
outputFields(指定输出字段)
以数组形式配置需返回的字段。
说明:
outputFields 与 retrieveVector 参数均可以配置是否输出向量值,二者任意一个配置需输出向量字段,则将输出向量字段。
limit(查询的数据条数)
10
每页返回的 Document 数量。仅输入方式选择 JSON 时展示。
数据类型:uint 64
取值范围:[1,16384]
注意:
输入方式选择 JSON 时,不配置 documentIds 和 filter 参数,则必须配置 offset 和 limit 参数,返回从 offset 开始的 limit 条数据,避免遍历所有数据而浪费不必要的资源。
offset(查询的数据偏移量)
0
设置分页偏移量,用于控制分页查询返回结果的起始位置,方便用户对数据进行分页展示和浏览。
取值:为 limit 整数倍。
计算公式:offset=limit*(page-1)。
例如:当 limit = 10,page = 2 时,分页偏移量 offset = 10 * (2 - 1) = 10,表示从查询结果的第 11 条记录开始返回数据。
5. 配置完成后,在输入参数下方单击执行
执行结果区域查看执行结果。
说明:
当输入方式选择表单,不输入任何参数,单击执行,可最多获取该集合内的前10条数据。

精确查询输入参数及执行结果示例

输入方式:表单
输入方式:JSON
?
{
"database": "db-test",
"collection": "book-vector",
"query": {
"documentIds": [
"0001",
"0002",
"0003"
],
"retrieveVector": true,
"filter": "bookName in (\\"三国演义\\",\\"西游记\\")",
"limit": 3,
"offset": 0,
"outputFields": [
"id",
"author",
"bookName",
"page"
]
}
}
?

相似度查询

1. 在左侧库表栏,展开数据库和集合。
2. 打开数据操作页面。
方式一:单击集合名称。
方式二:鼠标悬停至待操作集合,在右侧单击
?
,选择数据操作
3. 选择相似度查询页签。
4. 配置输入参数。
输入方式:表单JSON
输入参数:参数字段说明如下表所示。
参数名称
参数含义
子参数
是否必选
配置方法及要求
search
表示查询条件。
vectors(向量检索)
说明:
vectors、 documentIds、embeddingItems 三个字段,必须选择或配置其中一个。
?
表示要查询的向量列表。数组元素数量最大为20。
documentIds(文档主键 ID)
待查询的文档 ID 列表。数组元素数量最大为20。
embeddingItems(文本检索)
输入文本信息,用于检索与该文本信息相似的数据。
类型:字符串数组。
范围:数组元素数量最大为20 。
params(更多参数)
?创建集合时所选择的索引类型不同,检索时,所需配置的参数不同。
FLAT :无需指定参数。
HNSW:需配置参数 ef,指定需要访问向量的数目。取值范围[1,32768],默认为10。
IVF 系列:需设置参数 nprobe ,指定所需查询的单位数量。取值范围[1,nlist],其中 nlist 在创建集合时已设置。
filter
查询过滤条件。filter 的表达式格式为 <field_name><operator><value>,多个表达式之间支持 and(与)、or(或)、not(非)关系。具体信息,请参见 混合检索。其中:
<field_name>:表示要过滤的字段名。
<operator>:表示要使用的运算符。
string :匹配单个字符串值(=)、排除单个字符串值(!=)、匹配任意一个字符串值(in)、排除所有字符串值(not in)。其对应的 Value 必须使用英文双引号括起来。
uint64:大于(>)、大于等于(>=)、等于(=)、小于(<)、小于等于(<=)、不等于(!=)。
<value>:表示要匹配的值。
示例:uint64_val > 30game_tag="Detective"
retrieveVector
标识是否需要返回检索结果的向量值。
true:需要。
false:不需要。默认为 false。
limit
指定返回最相似的 Top K 的 K 的值。
outputFields
指定需要输出的字段。若不设置,将返回所有字段。
说明:
retrieveVector 和 outputFields 只要有其中一个配置输出向量字段即可输出 vector。
5. 配置完成后,在输入参数下方单击执行
执行结果区域查看执行结果。

相似度查询输入参数及执行结果示例

表单(documentIds)
JSON(documentIds)
表单(embeddingItems)
JSON(embeddingItems)
表单(vectors)
JSON(vectors)
?
{
"database": "db-test",
"collection": "book-vector",
"search": {
"documentIds": [
"0001",
"0002",
"0003"
],
"params": {
"ef": 200
},
"retrieveVector": true,
"filter": "bookName in (\\"三国演义\\",\\"西游记\\")",
"limit": 3
}
}
?
?
{
"database": "db-test",
"collection": "book-emb",
"search": {
"embeddingItems": [
"天下大势,分久必合,合久必分"
],
"limit": 3,
"params": {
"ef": 200
},
"retrieveVector": false,
"filter": "bookName in (\\"三国演义\\",\\"西游记\\")",
"outputFields": [
"id",
"author",
"text",
"bookName"
]
}
}
?
?
{
"database": "db-test",
"collection": "book-vector",
"search": {
"vectors": [
[
0.3123,
0.43,
0.213
]
],
"params": {
"ef": 200
},
"filter": "bookName in (\\"三国演义\\",\\"西游记\\")",
"retrieveVector": true,
"limit": 3
}
}
?

更新数据

1. 在左侧库表栏,展开数据库和集合。
2. 打开数据操作页面。
方式一:单击集合名称。
方式二:鼠标悬停至待操作集合,在右侧单击
?
,选择数据操作
3. 选择更新数据页签。
4. 配置输入参数。
输入方式:仅支持 JSON
输入参数:参数字段说明如下表所示。
参数名称
参数含义
子参数
是否必选
配置方法及要求
query
设置查询条件检索需更新的文档
documentIds
表示要更新的文档的所有 ID,支持批量查询,数组元素范围[1,20]。
filter
查询过滤条件。filter 的表达式格式为 <field_name><operator><value>,多个表达式之间支持 and(与)、or(或)、not(非)关系。具体信息,请参见 混合检索。其中:
<field_name>:表示要过滤的字段名。
<operator>:表示要使用的运算符。
string :匹配单个字符串值(=)、排除单个字符串值(!=)、匹配任意一个字符串值(in)、排除所有字符串值(not in)。其对应的 Value 必须使用英文双引号括起来。
uint64:大于(>)、大于等于(>=)、等于(=)、小于(<)、小于等于(<=)、不等于(!=)。
<value>:表示要匹配的值。
示例:uint64_val > 30game_tag="Detective"
update
设置需更新的字段
vector
更新 vector 字段的向量数据。
说明:
创建集合时,未开启 Embedding,或者该实例并未开通 Embedding 功能,则只能配置该参数,输入向量数据,更新数据。
text
Embedding 模型输入文本的字段名。该参数为创建集合时,开启 Embedding 后配置的原始文本字段名。本文示例为 text
string:字符型。
float:浮点型数据。
说明:
创建集合时,已开启 Embedding,则只能配置该参数,依据输入的文本信息更新向量数据,并将文本字段与向量数据更新存于数据库。
old_field
当前已存在的字段,更新字段对应的数据。
类型:string
字符长度要求:[1,256]。
new_field
新增字段,并给新字段赋值。
类型:string。
字符长度要求:[1,256]。
5. 配置完成后,在输入参数下方单击执行
执行结果区域查看执行结果。

更新数据输入参数及执行结果示例

集合未开启 Embedding
集合已开启 Embedding
{
"database": "db-test",
"collection": "book-vector",
"query": {
"documentIds": [
"0001",
"0003"
],
"filter": "bookName in (\\"三国演义\\",\\"西游记\\")"
},
"update": {
"vector": [
0.2123,
0.28,
0.213
],
"page": 30,
"test_new_field": "new field value"
}
}
?
{
"database": "db-test",
"collection": "book-emb",
"query": {
"documentIds": [
"0001",
"0003"
],
"filter": "bookName in (\\"三国演义\\",\\"西游记\\")"
},
"update": {
"text": "合久必分,分久必合",
"page": 30,
"test_new_field": "new field value"
}
}
?

删除数据

1. 在左侧库表栏,展开数据库和集合。
2. 打开数据操作页面。
方式一:单击集合名称。
方式二:鼠标悬停至待操作集合,在右侧单击
?
,选择数据操作
3. 选择删除数据页签。
4. 配置输入参数。
输入方式:表单JSON
输入参数:参数字段说明如下表所示。
参数(字段)名
是否必选
说明
filter(根据条件表达式查询)
查询过滤条件。filter 的表达式格式为 <field_name><operator><value>,多个表达式之间支持 and(与)、or(或)、not(非)关系。具体信息,请参见 混合检索。其中:
<field_name>:表示要过滤的字段名。
<operator>:表示要使用的运算符。
string :匹配单个字符串值(=)、排除单个字符串值(!=)、匹配任意一个字符串值(in)、排除所有字符串值(not in)。其对应的 Value 必须使用英文双引号括起来
uint64:大于(>)、大于等于(>=)、等于(=)、小于(<)、小于等于(<=)、不等于(!=)。
<value>:表示要匹配的值。 示例:uint64_val > 30game_tag="Detective"
documentIds(主键 ID)
表示要删除的 Document 的 ID,可以批量删除,数据元素最大值为20。
说明:
同时配置 documentIds 与 filter 参数,删除数据将会取二者的并集。
5. 配置完成后,在输入参数下方单击执行
执行结果区域查看执行结果。

删除数据输入参数及执行结果示例

输入方式:表单
输入方式:JSON
?
{
"database": "db-test",
"collection": "book-emb",
"query": {
"documentIds": [
"0001",
"0002",
"0003"
],
"filter": "bookName in (\\"三国演义\\",\\"西游记\\")"
}
}
?
?


http://www.vxiaotou.com