【elasticsearch系列】javaApi操作

配置Java环境

创建Maven项目

不再赘述

引入依赖

以下并非全部依赖!

   <!-- https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch -->
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>7.14.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/elasticsearch-rest-high-level-client -->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.14.0</version>
        </dependency>
创建客户端
// 创建客户端
RestHighLevelClient esClient=new RestHighLevelClient(
  RestClient.builder(new HttpHost("localhost",9200,"http"))
);
// 关闭客户端
esClient.close();

JavaApi操作

索引操作

创建索引
// 创建客户端
RestHighLevelClient esClient=new RestHighLevelClient(
  RestClient.builder(new HttpHost("localhost",9200,"http"))
);
// 创建索引
CreateIndexRequest request = new CreateIndexRequest("user");
CreateIndexResponse createIndexResponse = esClient.indices().create(request, RequestOptions.DEFAULT);
System.out.println("创建索引:"+createIndexResponse.isAcknowledged());
// 关闭客户端
esClient.close();
结果

创建索引:true

查询索引
// 创建客户端
RestHighLevelClient esClient=new RestHighLevelClient(
  RestClient.builder(new HttpHost("localhost",9200,"http"))
);
// 查询索引
GetIndexRequest request = new GetIndexRequest("user");
GetIndexResponse getIndexResponse = esClient.indices().get(request, RequestOptions.DEFAULT);
System.out.println("查询索引:"+getIndexResponse.getAliases());
System.out.println("查询索引:"+getIndexResponse.getMappings());
System.out.println("查询索引:"+getIndexResponse.getSettings());
// 关闭客户端
esClient.close();
结果
查询索引:{user=[]}
查询索引:{user=org.elasticsearch.cluster.metadata.MappingMetadata@ddef3a1c}
查询索引:{user={"index.creation_date":"1634192650562","index.number_of_replicas":"1","index.number_of_shards":"1","index.provided_name":"user","index.routing.allocation.include._tier_preference":"data_content","index.uuid":"S-lEeGCCT1etEzWvKeef9g","index.version.created":"7140099"}}

删除索引
// 创建客户端
RestHighLevelClient esClient=new RestHighLevelClient(
  RestClient.builder(new HttpHost("localhost",9200,"http"))
);
// 删除索引
DeleteIndexRequest request = new DeleteIndexRequest("user");
AcknowledgedResponse response = esClient.indices().delete(request, RequestOptions.DEFAULT);
System.out.println("删除索引:"+response.isAcknowledged());
// 关闭客户端
esClient.close();
结果

删除索引:true

文档操作

插入文档
// 创建客户端
RestHighLevelClient esClient=new RestHighLevelClient(
  RestClient.builder(new HttpHost("localhost",9200,"http"))
);
//向索引中插入数据
IndexRequest indexRequest = new IndexRequest();
//构造文档信息
User user = new User();
user.setName("张三");
user.setAge(18);
user.setSex("男");
ObjectMapper objectMapper=new ObjectMapper();
String userJson = objectMapper.writeValueAsString(user);
// 设置文档索引以及指定ID
indexRequest.index("user").id("1001");
//设置source,注意需要指定文档类型,这里用的是json
indexRequest.source(userJson, XContentType.JSON);
IndexResponse response = esClient.index(indexRequest, RequestOptions.DEFAULT);
System.out.println(response.getResult());
// 关闭客户端
esClient.close();
结果

CREATED

修改文档
// 创建客户端
RestHighLevelClient esClient=new RestHighLevelClient(
  RestClient.builder(new HttpHost("localhost",9200,"http"))
);
//修改索引中的文档
UpdateRequest updateRequest = new UpdateRequest();
// 设置文档索引以及指定ID
updateRequest.index("user").id("1001");
//设置文档类型,以及需要更新的数据,这里是局部更新
updateRequest.doc( XContentType.JSON,"sex","女");
UpdateResponse response = esClient.update(updateRequest, RequestOptions.DEFAULT);
System.out.println(response.getResult());
// 关闭客户端
esClient.close();
结果

UPDATED

查询文档
// 创建客户端
RestHighLevelClient esClient=new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost",9200,"http"))
);
//修改索引中的文档
GetRequest getRequest = new GetRequest();
// 设置文档索引以及指定ID
getRequest.index("user").id("1001");
GetResponse response = esClient.get(getRequest, RequestOptions.DEFAULT);
System.out.println(response.getSourceAsString());
// 关闭客户端
esClient.close();
结果
{"name":"张三","age":18,"sex":"女"}
删除文档
// 创建客户端
RestHighLevelClient esClient=new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost",9200,"http"))
);
//修改索引中的文档
DeleteRequest deleteRequest = new DeleteRequest();
// 设置文档索引以及指定ID
deleteRequest.index("user").id("1001");
DeleteResponse response = esClient.delete(deleteRequest, RequestOptions.DEFAULT);
System.out.println(response.toString());
// 关闭客户端
esClient.close();
批量插入数据
// 创建客户端
RestHighLevelClient esClient=new RestHighLevelClient(
  RestClient.builder(new HttpHost("localhost",9200,"http"))
);
BulkRequest request=new BulkRequest();
//批量插入数据
request.add(new IndexRequest().index("user").id("1002").source(XContentType.JSON,"name","zhangsan"));
request.add(new IndexRequest().index("user").id("1003").source(XContentType.JSON,"name","lisi"));

BulkResponse response = esClient.bulk(request, RequestOptions.DEFAULT);
System.out.println(response.getTook()); //打印批量插入所需要的时间
// 关闭客户端
esClient.close();
批量删除
// 创建客户端
RestHighLevelClient esClient=new RestHighLevelClient(
  RestClient.builder(new HttpHost("localhost",9200,"http"))
);
BulkRequest request=new BulkRequest();
//批量删除数据
request.add(new DeleteRequest().index("user").id("1002"));
request.add(new DeleteRequest().index("user").id("1003"));
BulkResponse response = esClient.bulk(request, RequestOptions.DEFAULT);
System.out.println(response.getTook());
// 关闭客户端
esClient.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LLLDa_&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值