Skip to main content

SAP HANA Cloud 向量数据库

Spring AI 支持将 SAP HANA Cloud 作为向量数据库,利用其向量引擎进行相似性搜索。

添加依赖

要使用 SAP HANA Cloud 向量存储,您需要将 spring-ai-sap-hana-store-spring-boot-starter 依赖项添加到项目的 pom.xml 文件中。 该启动器包含了 spring-ai-core 和 SAP HANA JDBC 驱动程序。
您还需要一个 EmbeddingClient 实现来为您的文档生成向量嵌入。例如,您可以添加 spring-ai-openai-spring-boot-starter 以使用 OpenAI 的嵌入模型:

配置属性

在您的 application.propertiesapplication.yml 文件中配置 SAP HANA Cloud 和嵌入客户端属性。

SAP HANA Cloud 属性

示例 application.properties:
确保 spring.ai.vectorstore.hana.embedding-dimension 与您正在使用的 EmbeddingClient 输出的嵌入维度相匹配。 如果表不存在,它将在第一次添加文档时自动创建。

使用 VectorStore

VectorStore bean 注入到您的组件中以与之交互:

创建 HanaVectorStore Bean (可选)

Spring Boot 会自动配置 HanaVectorStore bean。但是,如果您需要自定义配置,可以定义自己的 bean:

元数据过滤

SAP HANA Cloud 向量存储支持使用 SQL WHERE 子句和 Spring AI 的 相似性搜索过滤器表达式 进行元数据过滤。 过滤器表达式会转换为 SQL WHERE 子句中的条件。 示例:
元数据存储在表中的 metadata JSON 列中。 过滤器表达式中使用的键 (例如,genre, year) 应该是您在文档元数据中使用的键。 确保您的 SAP HANA Cloud 实例配置为允许对 JSON 列进行高效查询。根据需要,可能需要为元数据字段创建索引。

删除数据

HanaVectorStore 支持通过文档 ID 删除数据。

总结

将 Spring AI 与 SAP HANA Cloud 集成,使您能够利用 HANA 的内存计算能力和企业级特性进行向量存储和相似性搜索,从而增强您的 AI 应用程序。

文档有误?请协助编辑

发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档!