1:SpringBoot整合hign-level-client
我们接下来用java操作es
检索场景:
检索条件的时候,就要给es发送请求,检索出真正的商品,展示到界面中,这个请求应该由一段java程序来接受,并且发给es来处理,处理的结果在返回给前端界面,对于java来操作es有如下两种方式
https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high.html
es的官方文档介绍
- Java高级REST客户端在Java低级REST客户端之上工作。它的主要目标是公开API特定的方法,这些方法接受请求对象作为参数并返回响应对象,因此请求编组和响应反编组由客户机本身处理。
- 每个API都可以同步或异步调用。同步方法返回一个响应对象,而名称以async后缀结尾的异步方法需要一个侦听器参数,在接收到响应或错误时,该侦听器参数将被通知(在低层客户端管理的线程池中)。
- Java高级REST客户端依赖于Elasticsearch核心项目。它接受与TransportClient相同的请求参数,并返回相同的响应对象。
SpringBoot整合hign-level-client
第一步:新建一个mall-search,并且导入elasticsearch-rest-high-level-client依赖
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.4.2</version>
</dependency>
虚拟机中es的版本7.4.2一定要和后端中springboot管理的es版本一致,统一用7.4.2
jar包冲突解决办法
第二步:对es进行配置,EsConfig
- 高级客户端将在内部创建用于根据所提供的构建器执行请求的低级客户端。这个低级客户端维护一个连接池并启动一些线程,因此您应该在正确地使用高级客户端时关闭它,它将依次关闭内部低级客户端以释放这些资源。这可以通过结束:
@Configuration
public class MallESConfig {
@Bean
public RestHighLevelClient esRestClient(){
// RestHighLevelClient client = new RestHighLevelClient(
// RestClient.builder(
// new HttpHost("localhost", 9200, "http"),
// new HttpHost("localhost", 9201, "http")));