pgvector,一个提供向量相似性搜索功能的开源 PostgreSQL 扩展,已发布 v0.8.0 版本。此版本包括改进使用过滤器(例如 WHERE
子句)时的查询性能和可用性的功能,以及改进搜索和构建 HNSW 索引的性能。
最新版本的 pgvector 在过滤方面进行了各种改进。这包括更新 PostgreSQL 如何估计何时扫描近似最近邻 (ANN) 索引(如 HNSW 和 IVFFlat),这可能导致 PostgreSQL 选择 B 树或其他更有效执行查询的索引。如果可以在不使用 ANN 索引的情况下获得相同的查询性能,这通常是首选的,因为它使您可以实现 100% 的召回率或高相关性搜索。
此外,此 pgvector 版本还增加了迭代索引扫描,这是一种防止“过度过滤”或不返回足够结果以满足查询条件的技巧。您可以使用 HNSW 和 IVFFlat 索引的 hnsw.iterative_scan
和 ivfflat.iterative_scan
参数来启用迭代扫描,如果初始索引扫描不满足查询条件,pgvector 将继续搜索索引,直到达到可配置的阈值(hnsw.max_scan_tuples
和 ivfflat.max_probes
)。
有关更多信息,请参阅 0.8.0 的 CHANGELOG
https://github.com/pgvector/pgvector/blob/master/CHANGELOG.md#080-2024-10-30
有关 pgvector 的更多信息,包括如何入门,请访问GitHub 上的项目存储库