Zvec Logo

单向量搜索

单向量搜索用于查找与单个查询 Embedding 最相似的 Document。这是向量数据库中最常见的搜索模式。


前提条件

本指南假设你已经打开了一个 Collection,并准备好了一个 collection 对象。


执行单向量搜索

要执行单向量相似度搜索,请使用 query() 方法并提供一个向量查询规范

所有查询都返回一个 list[Doc],包含 top-k 个最相似的 Document,按相关性评分排序。

每个 Doc 对象包括:

  1. id:Document 标识符。
  2. score:相似度评分。
  3. vectors:向量字段名称到对应 Embedding 值的映射。
    仅在查询中传入 include_vector=True 时才会填充。
  4. fields:标量字段名称到存储值的映射。
    默认返回所有标量字段;可通过 output_fields 参数限制返回的字段。

参数

执行向量搜索时,query() 方法接受两类参数:

  1. 通用参数,无论底层索引类型如何都适用
  2. 索引特定参数,允许根据使用的向量索引微调搜索行为

通用参数

参数描述
topk返回最相似 Document 的数量。
include_vector如果为 True,返回的 Doc 对象包含完整的向量 Embedding(默认禁用以提升性能)。
output_fields可选的标量字段名称列表,用于指定结果中包含的字段。如果省略,返回所有标量字段。
filter可选的类 SQL 布尔表达式,用于限制结果。详见过滤搜索

reranker 参数是 query() 接口的一部分,但仅适用于多向量搜索
请勿在单向量查询中提供该参数。

索引特定参数

你可以通过 Query 对象中的 param 选项传递索引特定的查询参数来微调搜索行为。

这些 param 的确切类型和结构取决于目标向量 Embedding 所使用的向量索引。如果省略,将使用默认值。

每种索引类型在查询时都有其自己的可调选项。完整详情请参阅:

参数类不匹配会导致错误。例如,对 HNSW 索引的向量使用 IVFQueryParam(或反之)是不允许的。

目录