Spring集成ES

发布于:2024-07-27 ⋅ 阅读:(143) ⋅ 点赞:(0)

RestAPI

ES官方提供的java语言客户端用以组装DSL语句,再通过http请求发送给ES

RestClient初始化

引入依赖

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
初始化RestHighLevelClient
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(
        HttpHost.create("http://192.168.150.101:9200")
));

RestClient操作索引

创建索引

创建一个CreateIndexRequest对象

在对象中添加JSON格式的Mapping映射参数

client.indices()方法会返回封装了所有索引库操作的一个客户端

这里我们使用

client.indices().create(request, RequestOptions.DEFAULT);

删除索引

创建一个DeleteIndexRequest对象

调用delete方法

client.indices().delete(request, RequestOptions.DEFAULT);

查询索引是否存在

创建一个GetIndexRequest对象

调用exist方法

client.indices().exists(request, RequestOptions.DEFAULT);

RestClient操作文档

查询文档

创建一个GetRequest对象

调用get方法

 GetResponse response = client.get(request, RequestOptions.DEFAULT);
 String json = response.getSourceAsString();

删除文档

创建一个DeleteRequest对象

调用delete方法

client.delete(request, RequestOptions.DEFAULT);

修改文档

如果id存在就修改

如果id不存在就新增

创建一个 UpdateRequest对象

调用update方法

client.update(request, RequestOptions.DEFAULT);

批量导入文档

创建BulkRequest对象,可以添加以下请求

  • IndexRequest,也就是新增
  • UpdateRequest,也就是修改
  • DeleteRequest,也就是删除

在对象中添加多个不同请求,最后调用bulk方法

request.add(new IndexRequest("items").id("1").source("json doc1", XContentType.JSON));
    request.add(new IndexRequest("items").id("2").source("json doc2", XContentType.JSON));
client.bulk(request, RequestOptions.DEFAULT);