88_Spring AI 干货笔记之 Elasticsearch 向量存储
2026/4/20 23:53:47 网站建设 项目流程

一、Elasticsearch

本节将引导您设置 Elasticsearch VectorStore 来存储文档嵌入并执行相似性搜索。

Elasticsearch 是一个基于 Apache Lucene 库的开源搜索和分析引擎。

二、先决条件

一个正在运行的 Elasticsearch 实例。有以下可用选项:

  • Docker

  • 自管理的 Elasticsearch

  • Elastic Cloud

三、自动配置

Spring AI 自动配置、启动器模块的工件名称发生了重大变化。请参阅升级说明以获取更多信息。

Spring AI 为 Elasticsearch 向量存储提供了 Spring Boot 自动配置。要启用它,请将以下依赖项添加到项目的 Maven pom.xml 或 Gradle build.gradle 构建文件中:

Maven

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-vector-store-elasticsearch</artifactId></dependency>

Gradle

dependencies{implementation'org.springframework.ai:spring-ai-starter-vector-store-elasticsearch'}

对于 3.3.0 之前的 spring-boot 版本,需要显式添加版本 > 8.13.3 的 elasticsearch-java 依赖项,否则使用的旧版本将与执行的查询不兼容:

Maven

<dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.13.3</version></dependency>

Gradle

dependencies{implementation'co.elastic.clients:elasticsearch-java:8.13.3'}

请参阅 依赖管理 部分,将 Spring AI BOM 添加到您的构建文件中。

请参阅 工件仓库 部分,将 Maven Central 和/或快照仓库添加到您的构建文件中。

向量存储实现可以为您初始化必要的模式,但您必须通过指定相应构造器中的 initializeSchema 布尔值,或在 application.properties 文件中设置 …​initialize-schema=true 来选择加入。或者,您可以选择不进行初始化,并使用 Elasticsearch 客户端手动创建索引,这在索引需要高级映射或额外配置时可能很有用。

这是一个破坏性变更!在早期版本的 Spring AI 中,此模式初始化是默认发生的。

请查看向量存储的配置参数列表,了解默认值和配置选项。这些属性也可以通过配置 ElasticsearchVectorStoreOptions bean 来设置。

此外,您需要一个配置好的 EmbeddingModel bean。有关更多信息,请参阅 EmbeddingModel 部分。

现在,您可以在应用程序中自动注入 ElasticsearchVectorStore 作为向量存储:

@AutowiredVectorStorevectorStore;

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询