Spring Data Elasticsearch
Spring Data Elasticsearch项目将核心Spring概念应用于使用Elasticsearch搜索引擎开发解决方案。为我们提供了一个“模板”作为高级抽象,用于存储、查询、排序和面对文档.
要使用Spring Data Elasticsearch为我们设计好的模板,只需继承ElasticsearchRepository<T, ID>接口
如:
ElasticsearchRepository<T, ID>的类图谱:
可以看到ElasticsearchRepository实现了CrudRepository这个接口
Spring Data repository抽象中的中心接口是Repository。它将领域类和领域类的ID类型作为类型参数来管理。此接口主要用作标记接口,以捕获要使用的类型,并帮助您发现扩展此接口的接口。CrudRepository为所管理的实体类提供了复杂的CRUD功能。
CrudRepository:
在CrudRepository之上,有一个PagingAndSortingRepository抽象,它添加了额外的方法来简化对实体的分页访问:
如:
上面的方法名将被转换为下面的Elasticsearch json查询:
还可以使用@Query注释在方法中声明查询。
详细的文档说明:
https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#elasticsearch.misc
以下为对针对自定义实体类Blog基本操作的测试:
Blog
继承ElasticsearchRepository接口:
Service:
测试