文件内容检索

最近更新时间:2024-07-03 20:33:22

我的收藏

功能介绍

search() 接口用于在指定的文件内,查找与给定文本信息相似的 Top K 条文本信息。
支持指定文件名称检索最相似的文本信息。
支持文件名搭配文件元数据的标量字段的 Filter 表达式检索最相似的文本信息。
支持仅使用文件元数据的标量字段的 Filter 表达式检索最相似的文本信息。

请求示例

根据文件名搭配 Filter 检索相似数据
根据 Filter 表达式检索相似数据
如下示例,在文件腾讯云向量数据库.md中,检索与什么是向量数据库相似的文本信息,并使用标量字段 author 与 tags 的 Filter 表达式一并过滤文件。
import tcvectordb
from tcvectordb.model.document import Filter
from tcvectordb.model.enum import ReadConsistency
#create a database client object
client = tcvectordb.RPCVectorDBClient(url='http://10.0.X.X', username='root', key='eC4bLRy2va******************************', read_consistency=ReadConsistency.EVENTUAL_CONSISTENCY, timeout=30)

# 指定文件上传所属的文件
db = client.database('db-test-ai')
coll_view = db.collection_view('coll-ai-files')

doc_list = coll_view.search(
content='什么是向量数据库',
document_set_name = ['腾讯云向量数据库.md'],
expand_chunk=[1, 0],
filter=Filter(Filter.In("author",["Tencent","tencent"])).And(Filter.Include("tags",["AI","Embedding"])),
limit=3
)

for doc in doc_list:
print(vars(doc))
如下示例,通过文件 meta 信息的标量字段 author 的 Filter 表达式,检索与什么是向量数据库相似的文本信息。
import tcvectordb
from tcvectordb.model.document import Filter
from tcvectordb.model.enum import ReadConsistency
#create a database client object
client = tcvectordb.RPCVectorDBClient(url='http://10.0.X.X', username='root', key='eC4bLRy2va******************************', read_consistency=ReadConsistency.EVENTUAL_CONSISTENCY, timeout=30)

# 指定文件上传所属的文件
db = client.database('db-test-ai')
coll_view = db.collection_view('coll-ai-files')

doc_list = coll_view.search(
content='什么是向量数据库',
expand_chunk=[1, 0],
filter=Filter("author=\\"Tencent\\""),
limit=3
)

for doc in doc_list:
print(vars(doc))

请求参数

参数名称
是否必选
参数含义及配置方法
content
以 String 类型输入检索的文本信息
expand_chunk
以数组形式配置检索的目标信息所需向前扩展的段落数量以及向后扩展的段落数。例如,输入[2,3],指所检索到的 Chunk 返回时,同时返回其之前的 2个段落与之后的3个段落。
段落指文件在上传存储时,自动向量化拆分的段落。
默认值:[1,1]。
document_set_name
表示要查询的文档的名称,支持批量查询,数组元素范围[1,20]。
filter
使用创建 CollectionView 指定的 Filter 索引的字段设置查询过滤表达式。Filter 表达式格式为 <field_name><operator><value>,多个表达式之间支持 and(与)、or(或)、not(非)关系。具体信息,请参见 混合检索。其中:
<field_name>:表示要过滤的字段名。
<operator>:表示要使用的运算符。
string :匹配单个字符串值(=)、排除单个字符串值(!=)、匹配任意一个字符串值(in)、排除所有字符串值(not in)。其对应的 Value 必须使用英文双引号括起来。
uint64:大于(>)、大于等于(>=)、等于(=)、小于(<)、小于等于(<=)。例如:expired_time > 1623388524。
array:数组类型,包含数组元素之一(include)、排除数组元素之一(exclude)、全包含数组元素(include all)。例如,name include (\\"Bob\\", \\"Jack\\")。
<value>:表示要匹配的值。
示例:Filter('author="jerry"').And('page>20')
limit
指定返回最相似的 Top K 的 K 的值。

返回参数

如下为检索到的相似数据,返回最相似的 Top 3 条数据。
{
'score': 0.8924504518508911,
'data': {
'text': ('### 什么是向量检索?\\n向量检索是一种基于向量空间模型的信息检索方法。将非结构化的数据表示为向量存入向量数据库,向量检索通过计算查询向量与数据库中存储的向量的相似度来找到目标向量。\\n',
),
'startPos': 784,
'endPos': 876,
'pre': [
'### 什么是 AI 中的向量表示?\\n当我们处理非结构化数据时,需要将其转换为计算机可以理解和处理的形式。向量表示是一种将非结构化数据转换为嵌入向量的技术,通过多维度向量数值表述某个对象或事物的属性或者特征。腾讯云向量数据库提供的模型能力,目前在开发调试中。\\n'
],
'next': [
]
},
'documentSet': {
'documentSetId': '1180107147771117568',
'documentSetName': '腾讯云向量数据库.md',
'author': 'Tencent',
'tags': [
'向量',
'Embedding',
'AI'
]
}
}{
'score': 0.890502393245697,
'data': {
'text': ('## 腾讯云向量数据库是什么?\\n腾讯云向量数据库是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持10亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提供外部知识库,提高大模型回答的准确性,还可广泛应用于推荐系统、NLP 服务、计算机视觉、智能客服等 AI 领域。\\n',
),
'startPos': 122,
'endPos': 313,
'pre': [
'本页面旨在通过回答几个问题来让您大致了解腾讯云向量数据库(Tencent Cloud VectorDB)。读完本页后,您将了解腾讯云向量数据库是什么、它是如何工作的、关键概念、为什么使用腾讯云向量数据库、支持的索引和指标、架构和相关连接方式。\\n'
],
'next': [
]
},
'documentSet': {
'documentSetId': '1180107147771117568',
'documentSetName': '腾讯云向量数据库.md',
'author': 'Tencent',
'tags': [
'向量',
'Embedding',
'AI'
]
}
}{
'score': 0.8756946921348572,
'data': {
'text': ('本页面旨在通过回答几个问题来让您大致了解腾讯云向量数据库(Tencent Cloud VectorDB)。读完本页后,您将了解腾讯云向量数据库是什么、它是如何工作的、关键概念、为什么使用腾讯云向量数据库、支持的索引和指标、架构和相关连接方式。\\n',
),
'startPos': 0,
'endPos': 122,
'pre': [
],
'next': [
]
},
'documentSet': {
'documentSetId': '1180107147771117568',
'documentSetName': '腾讯云向量数据库.md',
'author': 'Tencent',
'tags': [
'向量',
'Embedding',
'AI'
]
}
}
参数名
子参数
参数含义
score
-
表示查询向量与检索结果向量之间的相似性计算分数。
data
text
检索的结果。
endPos
检索结果在文件中偏移的结束位置。
startPos
检索结果在文件中偏移的起始位置。
next
根据检索时,设置的参数 expand_chunk,返回检索结果向后扩展的段落。
pre
根据检索时,设置的参数 expand_chunk,返回检索结果向前扩展的段落。
documentSet
documentSetId
文件 ID。
documentSetName
文件名。
other_scalar_field
自定义的文件 Metadata 信息的标量字段。例如:author、page 等。
说明:
显示创建 CollectionView 时设置为 Filter 索引的字段,同时显示上传文件时或使用 update 新增的字段,但新增的字段不会构建索引。