springboot-elasticsearch实战

spring-data-elasticsearch 的工程,介绍 Spring Data Elasticsearch 简单的 ES 操作。Spring Data Elasticsearch 可以跟 JPA 进行类比。其使用方法也很简单。

  • springboot版本2.0.4.RELEASE已经支持最新的elasticsearch6.4.0版本了

引入maven:

在springboot项目中引入spring-data-elasticsearch:

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

配置elasticsearch服务器:

spring:
  data:
    elasticsearch:
      cluster-nodes: 118.184.218.184:9300
      cluster-name: docker-cluster

继承ElasticsearchRepository:

核心接口类继承ElasticsearchRepository:

public interface EsBlogRepository extends ElasticsearchRepository<EsBlog, String> {

    /**
     * <p class="detail">
     * 功能:
     * </p>
     *
     * @param title    :
     * @param Summary  :
     * @param content  :
     * @param tags     :
     * @param pageable :
     * @return page
     * @author Ciwei
     * @date 2018.08.21 23:18:00
     */
    Page<EsBlog> findDistinctEsBlogByTitleContainingOrSummaryContainingOrContentContainingOrTagsContaining(String title, String Summary, String content, String tags, Pageable pageable);

    /**
     * <p class="detail">
     * 功能:
     * </p>
     *
     * @param blogId :
     * @return es blog
     * @author Ciwei
     * @date 2018.08.21 23:18:00
     */
    EsBlog findByBlogId(Long blogId);
}

自定义方法:

我们就用上面2个自定义方法举例:

根据title Summary content tags pageable(分页信息) OR 条件查询分页的博客信息

findDistinctEsBlogByTitleContainingOrSummaryContainingOrContentContainingOrTagsContaining

根据blogId查询博客信息

findByBlogId

原生新增方法(id存在更新,不存在新增):

@Autowired
private EsBlogRepository esBlogRepository;
esBlogRepository.save();

自定义方法关键字:

中文分词

首先需要安装分词,博客中有安装教程

比如我现在有一些数据 字段tags的数据

代码需要添加分词类型:

@Field(type = FieldType.Text,fielddata = true, searchAnalyzer = "ik_max_word", analyzer = "ik_max_word")
private String tags;

分词测试:

哈哈我小呀 这条数据分词可以把它拆分为如下结果,说明如下所有的关键词都能搜索到这条记录,包括完整”哈哈我小呀”都能搜到

分词测试:

代码中有一个分词测试的接口(搜索关键词就能搜索到数据):

具体业务场景demo:https://github.com/ciweigg2/springboot-elasticsearch6


文章作者: Ciwei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ciwei !
 上一篇
elasticsearch安装分词工具ik elasticsearch安装分词工具ik
进入容器:docker exec -it elasticsearch bash 版本列表:https://github.com/medcl/elasticsearch-analysis-ik/releases 安装指定版本:./bin/el
2018-09-02
下一篇 
docker安装elasticsearch6.4.0的head插件 docker安装elasticsearch6.4.0的head插件
elasticsearch6+后的版本head插件是独立出来了,所以需要自己去安装 找了很久才找到这个插件 支持数据查询不报错的 在集群环境下使用head添加索引,需等待界面跳出来({“acknowledged”:true,”shards
  目录