springboot2.0 运行Elasticsearch

Elasticsearch项目简介

maven依赖

 
             
                 org.springframework.boot
                 spring-boot-starter-data-elasticsearch
             
  

jdbc配置

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
    username: root
    password: 111111
    hikari:
      minimum-idle: 5
      maximum-pool-size: 15
      auto-commit: true
      idle-timeout: 30000
      pool-name: DatebookHikariCP
      max-lifetime: 1800000
      connection-timeout: 30000
      connection-test-query: SELECT 1
  data:
    elasticsearch:
      repositories:
        enabled: true
      cluster-name: docker-cluster # this name you can set in elasticsearch.yml config
      cluster-nodes: localhost:9300 # elasticsearch host and port

Elasticsearch repository

elasticsearch repository基于spring data jpa规范,对elasticsearch数据进行crud操作,如果项目本身就是使用hibernate+jpa建议使用这种方式进行elasticsearch数据操作。

public interface UserSearchRepository extends ElasticsearchRepository {
    /**
     * find user by user name
     *
     * @param id user id
     * @return
     */
    User findUserById(Long id);
}

Elasticsearch template

如果项目使用的是mybatis等其他orm框架,建议使用elasticsearch template对数据进行操作。

ESService

项目中ESService 是基于elasticsearch template的一层常用封装,如果无法满足需求,请直接使用elasticsearch template进行数据操作。

  public interface ESService {
  
      /**
       * 建立索引
       *
       * @param clazz
       * @return
       */
      public  boolean createIndex(Class clazz);
  
  
      /**
       * 批量插入或更新数据
       *
       * @param list
       * @param 
       * @return
       */
      public  boolean batchInsertOrUpdate(List list);
  
  
      /**
       * 新增或更新数据
       *
       * @param t
       * @return
       */
      public  boolean insertOrUpdate(T t);
  
  
      /**
       * 通过实体类型及id删除数据
       *
       * @param clazz 实体类型
       * @param id    id
       * @param 
       * @return
       */
      public  boolean deleteById(Class clazz, String id);
  
      /**
       * 通过id查询数据
       *
       * @param clazz 实体类型
       * @param id    数据id
       * @param 
       * @return
       */
      public  T queryById(Class clazz, String id);
  
  
      /**
       * 列表查询
       *
       * @param clazz    实体类型
       * @param queryMap 查询参数
       * @param sortBy   排序字段
       * @param order    排序方式
       * @param 
       * @return
       */
      public  List queryList(Class clazz, Map queryMap, String sortBy, SortOrder order);
  
      /**
       * 分页查询
       *
       * @param clazz    实体类型
       * @param page     分页
       * @param queryMap 查询参数
       * @param sortBy   排序字段
       * @param order    排序方式
       *                 * @param 
       * @return
       */
      public  Page queryPage(Class clazz, Page page, Map queryMap, String sortBy,
                                   SortOrder order);
  
  
      /**
       * 通过string查询数据
       *
       * @param 
       * @return
       */
      public  T queryByString(String id, Class clazz);
  }

如遇问题,请发送邮件到我的邮箱[email protected]

项目地址https://github.com/bijialin/spring-boot/tree/master/elasticsearch

你可能感兴趣的:(springboot2.0 运行Elasticsearch)