我将 Spring AI 与 pgvector 结合使用,我注意到每次启动应用程序时,都会为 vector_store 表创建一个新索引。
是否有配置可以避免这种行为?
Spring AI版本:1.0.3 JDK版本:17
我通过将属性
spring.ai.vectorstore.pgvector.index-type
设置为 NONE
并使用以下命令手动创建索引来解决:
CREATE INDEX ON vector_store USING HNSW (embedding vector_cosine_ops);
无论如何,应该有一种方法来防止每次应用程序启动时重新创建索引(如果索引已经存在)。
文档
https://docs.spring.io/spring-ai/reference/api/vectordbs/pgvector.html
spring.ai.vectorstore.pgvector.index-type
最近邻搜索索引类型。选项为“无” - 完全最接近 邻居搜索,IVFFlat - 索引将向量划分为列表,然后 搜索最接近查询向量的那些列表的子集。 与 HNSW 相比,它的构建时间更快,使用的内存更少,但 较低的查询性能(在速度与调用权衡方面)。新南威尔士州 - 创建多层图。它的构建时间较慢并且使用更多 内存比 IVFFlat 好,但具有更好的查询性能(就 速度回忆权衡)。没有像 IVFFlat 这样的训练步骤,所以 可以在表中没有任何数据的情况下创建索引。