单向量搜索
单向量搜索用于查找与单个查询 Embedding 最相似的 Document。这是向量数据库中最常见的搜索模式。
前提条件
本指南假设你已经打开了一个 Collection,并准备好了一个 collection 对象。
执行单向量搜索
要执行单向量相似度搜索,请使用 query() 方法并提供一个向量查询规范。
所有查询都返回一个 list[Doc],包含 top-k 个最相似的 Document,按相关性评分排序。
每个 Doc 对象包括:
id:Document 标识符。score:相似度评分。vectors:向量字段名称到对应 Embedding 值的映射。
仅在查询中传入include_vector=True时才会填充。fields:标量字段名称到存储值的映射。
默认返回所有标量字段;可通过output_fields参数限制返回的字段。
参数
执行向量搜索时,query() 方法接受两类参数:
- 通用参数,无论底层索引类型如何都适用
- 索引特定参数,允许根据使用的向量索引微调搜索行为
通用参数
| 参数 | 描述 |
|---|---|
topk | 返回最相似 Document 的数量。 |
include_vector | 如果为 True,返回的 Doc 对象包含完整的向量 Embedding(默认禁用以提升性能)。 |
output_fields | 可选的标量字段名称列表,用于指定结果中包含的字段。如果省略,返回所有标量字段。 |
filter | 可选的类 SQL 布尔表达式,用于限制结果。详见过滤搜索。 |
reranker 参数是 query() 接口的一部分,但仅适用于多向量搜索。
请勿在单向量查询中提供该参数。
索引特定参数
你可以通过 Query 对象中的 param 选项传递索引特定的查询参数来微调搜索行为。
这些 param 的确切类型和结构取决于目标向量 Embedding 所使用的向量索引。如果省略,将使用默认值。
每种索引类型在查询时都有其自己的可调选项。完整详情请参阅:
参数类不匹配会导致错误。例如,对 HNSW 索引的向量使用 IVFQueryParam(或反之)是不允许的。