向量搜索
解释 Vector Search 的手动/自动嵌入查询、ANN/ENN、预/后过滤器、Driver 5.10 嵌套向量选项和 Bson 扩展路径。
基本向量搜索。
向量搜索需要显式的索引名称,$vectorSearch 是聚合的第一个阶段。
查询向量 / 自动嵌入。
queryVector(float[]/double[]/Collection<Double>)
传递应用程序生成的向量。
queryVector(BinaryVector)。
直接使用 MongoDB 驱动程序的紧凑二进制向量表示。
query(String)。
将查询文本本身传递给 MongoDB 自动嵌入索引。
query(VectorSearchQuery)。
直接传递驱动程序原生查询类型的未来兼容逃生口。
DSL 核心不包含调用外部嵌入提供者生成向量的功能。手动向量由调用应用程序生成并传递给 queryVector(...)。
ANN / ENN。
ANN。
使用 approximate(numCandidates) 或 numCandidates(...)。在 ANN 中需要候选计数。
ENN。
使用 exact() 或 exact(true)。启用 exact 后,现有的 numCandidates 值将被移除。
预过滤器 / 后过滤器。
filter()/filterFields()。
作为进入 $vectorSearch.filter 的预过滤器,影响候选选择本身。
fields(...)。
在 $vectorSearch 后的常规 $match 后过滤器。
嵌套 / 数组嵌入 (Driver 5.10)。
filter / filterFields。
嵌套嵌入的叶文档过滤器。
parentFilter / parentFilterFields。
适用于根文档的 Driver 5.10 parentFilter。
nestedScoreMode
将一个文档的多个匹配嵌入分数结合为 AVG 或 MAX。
分数 / 投影 / 终端
findAll / find
将 Vector 结果返回为 Flux/Mono。
count().execute()
在向量限制之后计算管道结果的数量。不是整个语料库的计数。
existsQuery().execute()
检查是否存在向量管道结果。
Driver-native 后阶段 / 选项
stage(Bson) 在 $vectorSearch 之后立即执行,优先于后过滤器/元数据/投影。driverOptions(...) 是一个逃生舱,可以直接使用当前/未来 Driver 选项,尽管它们尚未在便利 API 中。