美文网首页
springboot2.0 运行Elasticsearch

springboot2.0 运行Elasticsearch

作者: nickbi | 来源:发表于2019-01-18 15:32 被阅读0次

    Elasticsearch项目简介

    maven依赖

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

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

    如遇问题,请发送邮件到我的邮箱nickbi@nickbi.com

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

    相关文章

      网友评论

          本文标题:springboot2.0 运行Elasticsearch

          本文链接:https://www.haomeiwen.com/subject/ilpndqtx.html