Spring Boot 整合 ElasticSearch 这么简单?

本文介绍了ElasticSearch在项目中的使用场景,对比了ElasticSearch与Solr的区别。详细讲解了如何在Spring Boot应用中利用spring-data-elasticsearch与ElasticSearch交互,包括创建RestHighLevelClient,使用Operations接口操作ElasticSearch,以及各种搜索API和查询条件的封装方法。
摘要由CSDN通过智能技术生成

ElasticSearch 作为一款常见的搜索引擎,在项目中随时会用到。为方便在项目中访问 ElasticSearch,Spring 官方封装了对 ElasticSearch 的支持。通过 Spring Data 的 ElasticSearch 模块,我们可以方便地使用 ElasticSearch。

本文主要涉及的知识点有:

  • ElasticSearch 的使用场景和技术。

  • spring-data-elasticsearch 中 Operations 和 Repository 相关技术的使用。

  • 如何在 Spring Boot 项目中引入 spring-data-elasticsearch。

ElasticSearch的使用场景和相关技术

搜索功能不仅在互联网项目中需要,在企业级项目中也需要。在通用型搜索引擎出现之前,通常实现搜索功能的方式是关系型数据库的模糊查询,但是使用模糊查询具有效率低、响应速度慢、不支持匹配度排序等缺陷。因此,在项目中引入搜索引擎就成了实现搜索功能的不二之选。

常用的搜索引擎除 ElasticSearch 之外还有 Solr,它和 ElasticSearch 都是基于 Lucene 开发出来的。Lucene 是 Apache 的开源搜索项目,这个项目的产出是一个搜索库,被称为 Lucene Core。Lucene Core 是 Java 实现的,提供了强大的索引和搜索功能,以及拼写检查,单击突出显示和高级分析/标记功能。

Apache Solr 是 Apache 的一个独立的顶级项目,其内置了完整的 Lucene 包。自从 Lucene 和 Solr 整合之后,Solr 和 Lucene 发布的版本都是一致的。

由于 Lucene Core 只是 Java 库,不能独立使用,因此平时在企业中使用最多的还是 ElasticSearch 或 Solr。ElasticSearch 和 Solr都能实现搜索,但是也不完全相同。Solr 有庞大的用户群,而且比较成熟,但是建立索引时会影响搜索效率,不适合用作实时搜索。而 ElasticSearch 支持分布式、实时分发,支持建立索引和搜索同时进行。也正是由于 ElasticSearch 的这些特点,使得 ElasticSearch 的使用变得越来越流行。

spring-data-elasticsearch 支持的ElasticSearch Client

要在项目中使用 ElasticSearch,首先要连接到 ElasticSearch。实现连接到 ElasticSearch 的模块被称作 ElasticSearch Client。

ElasticSearch 的 Client

ElasticSearch 官方提供了 3 个 Client,具体如下:

  • org.elasticsearch.client.transport.TransportClient

  • org.elasticsearch.client.RestClient

  • org.elasticsearch.client.RestHighLevelClient

TransportClient 位于 Elasticsearch 包下,是 Elasticsearch 官方早期支持的 ElasticSearch Client,但是在 ElasticSearch 7.x 版本中已经标注为 Deprecated,并且将在 8.0 版本中移除,所以建议不使用 TransportClient 作为 ElasticSearch Client。

RestHighLevelClient 是 TransportClient 的直接替代者,也是 ElasticSearch 官方推荐和默认的 Client(松哥注:该客户端在最新版本中已经废弃)。

除了 ElasticSearch 官方提供的 Client,spring-data-elastics

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值