<!-- es的核心依赖-->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.8.0</version>
</dependency>
<!-- elasticsearch 的客户端 -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.8.0</version>
</dependency>
测试的是windows 安装的elasticSearch
package com.example.springboot024canal.controller;
import com.example.springboot024canal.bean.CC;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpHost;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import top.javatool.canal.client.annotation.CanalTable;
import top.javatool.canal.client.handler.EntryHandler;
import java.io.IOException;
@CanalTable("cc")
@Component
@Slf4j
public class CcController implements EntryHandler<CC> {
//把数据往Redis同步
@Autowired
private RedisTemplate<Object,Object> redisTemplate;
@Override
public void insert(CC cc) {
redisTemplate.opsForValue().set("EMP:"+cc.getId(),cc);
// 创建ES客户端
RestHighLevelClient highLevelClient = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost",9200,"http"))
);
// 插入数据
IndexRequest request = new IndexRequest();
request.index("chenxin").id(cc.getId()+"");
try {
// 给ES插入数据必须将数据转换为JSON格式
ObjectMapper mapper = new ObjectMapper();
String userJson = mapper.writeValueAsString(cc);
// 告诉IndexRequest数据的格式是JSON
request.source(userJson, XContentType.JSON);
IndexResponse response = highLevelClient.index(request, RequestOptions.DEFAULT);
System.out.println(response.getResult());
// 关闭连接
highLevelClient.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}