首先引入elasticsearch依赖:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>


然后在application配置文件中配置elasticsearch节点和集群名称相关信息


这个endpoints必配,其他根据自己实际配置
spring.data.elasticsearch.client.reactive.endpoints=150.158.6.143:9200
spring.data.elasticsearch.client.reactive.connection-timeout=3000
spring.data.elasticsearch.client.reactive.max-in-memory-size=
spring.data.elasticsearch.client.reactive.password=
spring.data.elasticsearch.client.reactive.username=


之后使用通用的Spring Data Repositories,我们可以使用简单的CrudRepository接口,不过这里面没有分页和排序的功能,为了拥有这些功能我们可以使用他的子接口PagingAndSortingRepository。这些接口都有两个参数需要指定一个是操作实体,另一个是实体中的主键类型,该主键需用@Id注解标注,具体参考如下:


public interface UserDao extends PagingAndSortingRepository<User,Integer> {
    /**
     * PagingAndSortingRepository<User,Integer>
     * CrudRepository<User,Integer>
     *     第一个参数为文档名称,第二个参数为ID主键类型
     */
}

@Data
@Document(indexName = "es")
public class User {
    @Id
    private Integer id;
    private String name;
    private String sex;
    private Integer age;
    private String address;
}

最后就是在我们要用到的地方注入操作对象就行
@Autowired
private UserDao userDao;


在完成上面的步骤之后,由于我们并没有将UserDao类注入IOC容器,所以我们可以使用注解
@EnableElasticsearchRepositories(basePackages = "com.example.esdemo.dao")
指定扫描路径,有点类似@ComponentScan,其实我们也可以在每个操作类上添加@Repository

更多细节请参考官网 https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#preface)

GitHub 加速计划 / sp / spring-boot
37
6
下载
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
最近提交(Master分支:19 天前 )
52c55788 See gh-47322 See gh-46356 1 天前
99064491 Closes gh-47227 1 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐