= Spring Data for Elasticsearch image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-elasticsearch%2Fmain&subject=Build[link=https://jenkins.spring.io/view/SpringData/job/spring-data-elasticsearch/] https://gitter.im/spring-projects/spring-data[image:https://badges.gitter.im/spring-projects/spring-data.svg[Gitter]] image:https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A["Revved up by Develocity", link="https://ge.spring.io/scans?search.rootProjectNames=Spring Data Elasticsearch"]
https://projects.spring.io/spring-data[Spring Data]项目的主要目标是简化使用新数据访问技术(如非关系型数据库、MapReduce框架和基于云的数据服务)构建Spring应用程序的过程。
Spring Data Elasticsearch项目提供了与https://www.elastic.co/[Elasticsearch]搜索引擎的集成。Spring Data Elasticsearch的主要功能领域包括以POJO为中心的模型,用于与Elasticsearch文档交互,以及轻松编写Repository风格的数据访问层。
该项目由社区主导和维护。
== 特性
- 使用基于Java的
@Configuration
类或XML命名空间为ES客户端实例提供Spring配置支持。 ElasticsearchOperations
类及其实现,提高了执行常见ES操作的生产效率。包括文档和POJO之间的集成对象映射。- 功能丰富的对象映射,与Spring的转换服务集成
- 基于注解的映射元数据
- 自动实现
Repository
接口,包括对自定义搜索方法的支持。 - 对仓库的CDI支持
== 行为准则
== 入门
以下是使用Java中Spring Data Repositories的应用程序示例:
[source,java]
public interface PersonRepository extends CrudRepository<Person, Long> {
List
List
@Service public class MyService {
private final PersonRepository repository;
public MyService(PersonRepository repository) { this.repository = repository; }
public void doWork() {
repository.deleteAll();
Person person = new Person();
person.setFirstname("Oliver");
person.setLastname("Gierke");
repository.save(person);
List<Person> lastNameResults = repository.findByLastname("Gierke");
List<Person> firstNameResults = repository.findByFirstnameLike("Oli");
} }
=== 使用RestClient
请查看官方文档。
=== Maven配置
添加Maven依赖:
[source,xml]
兼容性矩阵
Spring Data Elasticsearch、Elasticsearch客户端驱动程序和Spring Boot版本之间的兼容性可以在https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#preface.versions[参考文档]中找到。
要使用即将发布的主要版本的候选版本,请使用我们的Maven里程碑仓库并声明适当的依赖版本:
[source,xml]
如果您更喜欢即将发布的主要版本的最新快照,请使用我们的Maven快照仓库并声明适当的依赖版本:
[source,xml]
== 获取帮助
在使用Spring Data时遇到问题?我们很乐意提供帮助!
- 查看https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/[参考文档]和https://docs.spring.io/spring-data/elasticsearch/docs/current/api/[Javadocs]。
- 学习Spring基础知识 – Spring Data建立在Spring Framework之上,请查看https://spring.io[spring.io]网站获取大量参考文档。如果您刚开始使用Spring,请尝试其中一个https://spring.io/guides[指南]。
- 在https://app.gitter.im/#/room/#spring-projects_spring-data:gitter.im[Gitter]上提问或与社区交流。
- 在https://github.com/spring-projects/spring-data-elasticsearch/issues[https://github.com/spring-projects/spring-data-elasticsearch/issues]报告Spring Data for Elasticsearch的错误。
== 报告问题
Spring Data使用GitHub作为问题跟踪系统来记录错误和功能请求。如果您想提出问题,请遵循以下建议:
- 在记录错误之前,请先在https://github.com/spring-projects/spring-data-elasticsearch/issues[问题跟踪器]中搜索,看看是否有人已经报告了该问题。
- 如果问题尚不存在,请https://github.com/spring-projects/spring-data-elasticsearch/issues/new[创建新问题]。
- 请在问题报告中提供尽可能多的信息,我们需要知道您使用的Spring Data Elasticsearch版本和JVM版本。
- 如果需要粘贴代码或包含堆栈跟踪,请在文本前后使用Markdown +++```+++ 转义。
- 如果可能,请尝试创建一个复现问题的测试用例或项目。附上您的代码链接或包含代码的压缩文件。
== 从源代码构建
您无需从源代码构建即可使用Spring Data(二进制文件在https://repo.spring.io[repo.spring.io]中),但如果您想尝试最新版本,可以使用https://github.com/takari/maven-wrapper[maven wrapper]轻松构建Spring Data。
要构建_main_分支,您需要JDK 17或更高版本。对于4.4及更早版本的分支,需要JDK 8。
[source,bash]
$ ./mvnw clean install
如果您想使用常规的mvn
命令,则需要https://maven.apache.org/run-maven/index.html[Maven v3.5.0或更高版本]。
另请参阅link:CONTRIBUTING.adoc[CONTRIBUTING.adoc],如果您希望提交拉取请求,特别是在提交第一个拉取请求之前,请签署https://cla.pivotal.io/sign/spring[贡献者协议]。
=== 构建参考文档
构建文档时也会构建项目,但不运行测试。
[source,bash]
$ ./mvnw clean install -Pantora
生成的文档可在target/antora/site/index.html
中找到。
== 示例
有关使用Spring Data for Elasticsearch的示例,请参阅https://github.com/spring-projects/spring-data-examples/tree/main/elasticsearch/example[spring-data-examples]项目。
== 许可证
Spring Data for Elasticsearch是根据https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0许可证]发布的开源软件。