【ES从入门到实战】二十四、全文检索-ElasticSearch-整合-SpringBoot整合high-level-client

接第23节

五、Elasticsearch-Rest-Client

Java 操作 ES 的两种方式:
1) 、9300:TCP (我们不在9300操作,官方也不建议)

  • spring-data-elasticsearch:transport-api.jar;
    • springboot 版本不同,transport-api.jar不同,不能适配es版本
    • 7.x 已经不建议使用,8 以后就要废弃

2)、9200:HTTP(推荐使用)

  • JestClient:非官方,更新慢
  • RestTemplate:模拟发 HTTP 请求,ES 很多操作需要自己封装,麻烦
  • HttpClient:同上 I
  • Elasticsearch-Rest-Client:官方 RestClient,封装了 ES 操作, API 层次分明,上手简单最终选择
    Elasticsearch-Rest-Client(elasticsearch-rest-high-level-client)
    在这里插入图片描述

在这里插入图片描述

1、SpringBoot整合

1)在pafcmall项目中新添加一个模块pafcmall-search,当然你也可以,单独创建一个项目

在这里插入图片描述
使用 spring 启动器创建:
在这里插入图片描述
添加 groupartifact 信息:
在这里插入图片描述
添加 web 依赖:
在这里插入图片描述

2)、修改pom文件

添加对应的当前 ES 版本的 rest-high-level-client 依赖,我使用的是7.4.2,所以添加7.4.2的依赖

<dependency>
	<groupId>org.elasticsearch.client</groupId>
	<artifactId>elasticsearch-rest-high-level-client</artifactId>
	<version>7.4.2</version>
</dependency>

在这里插入图片描述
可以看到当前 SpingBoot(2.2.6)版本默认管理的 ES 的版本和 elasticsearch-rest-high-level-client 的版本不一致:
在这里插入图片描述
需要修改一下 pom 文件,让 ESelasticsearch-rest-high-level-client 的版本保持一致:

<elasticsearch.version>7.4.2</elasticsearch.version>

在这里插入图片描述

3)、添加 ES 配置类

/**
 * @description: Elasticsearch 配置文件
 * <p>
 * SpringBoot 集成 ES 的步骤:
 *  1、导入依赖
 *      https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-getting-started-maven.html
 *  2、编写 ES 配置,给容器中注入一个 RestHighLevelClient,用来操作 9200 端口
 *      https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-getting-started-initialization.html
 *  3、参照官方API
 */
@Configuration
public class PafcmallElasticsearchConfig {

    @Bean
    public RestHighLevelClient esRestHighLevelClient() {
        RestHighLevelClient client = new RestHighLevelClient(
                // 这里可以配置多个 es服务,我当前服务不是集群,所以目前只配置一个
                RestClient.builder(
                        new HttpHost("192.168.50.10", 9200, "http")));

        return client;
    }
}

在这里插入图片描述
修改启动类

@EnableDiscoveryClient // 开启服务注册与发现
// 这里需要排除一下数据库的依赖,因为引入了pafcmall-common依赖,其中包含了mybatis-plus的配置,目前我们的服务还没有依赖数据源,所以需要排除
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class PafcmallSearchApplication {

    public static void main(String[] args) {
        SpringApplication.run(PafcmallSearchApplication.class, args);
    }

}

修改 application.properties 文件:

# nacos配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# 配置应用名
spring.application.name=pafcmall-search

使用测试类测试:

@SpringBootTest
class PafcmallSearchApplicationTests {
    @Autowired
    private RestHighLevelClient client;
	
    @Test
    void contextLoads() {
        System.out.println(client);
    }
}

在这里插入图片描述

更多整合信息请参考 java-rest-high-getting-started-mavenjava-rest-high-getting-started-initialization


参考:

Elasticsearch Reference

elastic

全文搜索引擎 Elasticsearch 入门教程

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值