资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

SpringBoot整合ElasticSearch

Java 更新时间: 发布时间: 计算机考试归档 最新发布

SpringBoot整合ElasticSearch

文章目录

      • 1、pom.xml
      • 2、application.properties
      • 3、Notice实体
      • 4、NoticeRepository类
      • 5、NoticeController
      • 6、查看运行结果

ElasticSearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene 基础之上。(Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库。)

ElasticSearch 使用 Java 编写的,它的内部使用的是 Lucene 做索引与搜索,它的目的是使全文检索变得简单(因为 Lucene 只是个库),通过隐藏 Lucene 的复杂性,取而代之提供了一套简单一致的 RESTful API 。

接下来介绍基于spring-boot-starter-data-elasticsearch整合。
开发环境:springboot版本:2.0.1,elasticSearch-5.6.8.jar版本:5.6.8,服务器部署ElasticSearch版本:6.3.2

1、pom.xml

                 org.springframework.boot         spring-boot-starter-data-elasticsearch                     org.projectlombok        lombok                    com.google.guava        guava        19.0    

Spring Data ElasticSearch 和 ElasticSearch 是有对应关系的,不同的版本之间不兼容。
版本对应关系

官网描述的对应关系如下表:

Spring BootSpring Data ElasticsearchElasticsearch
2.2.x3.2.x6.8.4
2.1.x3.1.x6.2.2
2.0.x3.0.x5.5.0

注意,Spring Boot(Spring Data Elasticsearch)和 Elasticsearch 的版本匹配问题是网上反映较多的问题一定要注意。

2、application.properties

spring.data.elasticsearch.cluster-name=elasticsearchspring.data.elasticsearch.cluster-nodes=127.0.0.1:9300spring.data.elasticsearch.repositories.enabled=true

3、Notice实体

@Data@AllArgsConstructor@NoArgsConstructor//indexName代表所以名称,type代表表名称@Document(indexName = "wantu_notice_info", type = "doc")public class Notice {    //id    @JsonProperty("auto_id")    private Long id;    //标题    @JsonProperty("title")    private String title;    //公告标签    @JsonProperty("exchange_mc")    private String exchangeMc;    //公告发布时间    @JsonProperty("create_time")    private String originCreateTime;    //公告阅读数量    @JsonProperty("read_count")    private Integer readCount;    }

4、NoticeRepository类

@Componentpublic interface NoticeRepository extends ElasticsearchRepository {}

5、NoticeController

@RestController@RequestMapping("/api/v1/article")public class NoticeController {    @Autowired    private NoticeRepository nticeRepository;        @GetMapping("save")    public CommandResult save(long id, String title){            Notice article = new Notice();        article.setId(id);        article.setReadCount(123);        article.setTitle("springboot整合elasticsearch,这个是新版本 2018年");        nticeRepository.save(article);        return CommandResult.ofSucceed();    }        @GetMapping("search")    public CommandResult> search(String title,@PageableDefault(page = 1, value = 10) Pageable pageable){        //按标题进行搜索        QueryBuilder queryBuilder = QueryBuilders.matchQuery("title", title);        //如果实体和数据的名称对应就会自动封装,pageable分页参数        Iterable listIt =  nticeRepository.search(queryBuilder,pageable);                //Iterable转list        List list= Lists.newArrayList(listIt);                return CommandResult.ofSucceed(list);    }}

6、查看运行结果

它会进行中文分词查询,然后安装相识度进行排序

总体步骤还是很清晰简单的,因为有spring-boot-starter-data-elasticsearch进行了整合,所以我们可以少敲很多代码。

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1096622.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【SpringBoot整合ElasticSearch】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2