专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

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)75_1.png

75_2.png

1、SpringBoot整合

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

75_3.png使用 spring 启动器创建: 75_4.png添加 groupartifact 信息: 75_5.png添加 web 依赖: 75_6.png

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>

75_7.png可以看到当前 SpingBoot(2.2.6)版本默认管理的 ES 的版本和 elasticsearch-rest-high-level-client 的版本不一致: 75_8.png需要修改一下 pom 文件,让 ESelasticsearch-rest-high-level-client 的版本保持一致:

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

75_9.png

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;
    }
}

75_10.png修改启动类

@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);
    }
}

75_11.png

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


参考:

Elasticsearch Reference

elastic

全文搜索引擎 Elasticsearch 入门教程

文章永久链接:https://tech.souyunku.com/37487

未经允许不得转载:搜云库技术团队 » ES实战二十四、全文检索-ElasticSearch-整合-SpringBoot整合high-level-client

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们