Docs 菜单
Docs 主页
/
MongoDB Atlas
/

提高向量搜索性能

在此页面上

  • 减少向量维度
  • 运行查询时避免对向量进行索引
  • 从结果中排除向量字段
  • 确保有足够的内存
  • 预热文件系统缓存

Atlas Vector Search 使您能够执行 ANN查询,以搜索与所选产品相似的结果、搜索图像等。要提高索引速度和查询性能,请查看以下最佳实践。

Atlas Vector Search 最多支持 4096 (含)向量维度。然而,向量搜索索引和查询的计算量很大,因为较大的向量需要更多的浮点比较。因此,在可能的情况下,我们建议在确保可以衡量更改嵌入模型对向量查询准确性的影响后,减少维数。

向量嵌入在索引过程中会消耗计算资源。我们建议避免在向量搜索期间编制索引和重新索引。如果您决定更改生成要索引的向量的嵌入模型,我们建议您将新向量重新索引到新索引中,而不是更新当前正在使用的索引。

您可以请求结果中文档的现有字段,以及在 $project阶段返回新计算的字段。要提高查询性能,请使用$project阶段审慎选择要在结果中返回的字段,除非您需要结果中的所有字段。我们建议在$project阶段排除向量字段,因为向量嵌入可能很大,会影响返回结果的查询延迟。

分层可导航小世界 当矢量数据保存在内存中时,可以有效地工作。您必须确保数据节点有足够的 RAM 来保存向量数据和索引。我们建议部署单独 的搜索节点以实现工作负载隔离 ,而不进行数据隔离,这样可以更有效地为向量搜索使用案例使用内存。

当您在没有 专用搜索节点 的情况下执行向量搜索时,当您遍历“ 分层可导航小世界 ”时,您的查询最初会在磁盘上执行随机查找。 图形,向量值会读入内存。这会导致初始查询出现非常高的延迟。使用 Hierarchical Navigable Small Worlds 时,延迟会有所改善 遍历将所有索引向量读取到内存中,这使得后续查询可以更快地访问它们。

但是,在进行大型写入或重建索引时,必须重复此缓存预热过程。如果部署专用搜索节点,Atlas Vector Search 会自动将索引预热到文件系统缓存中,因此没有必要执行此额外步骤。

← AI 集成 API 资源