ES7基础篇-10-SpringBoot集成ES操作背景
1. 配置环境依赖
1.1 查看⼀下当前使⽤的es版本
⽐如我演⽰使⽤的es版本为: 7.15.1
1.2 配置maven的依赖以及环境变量
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.15.1</version>
</dependency>
配置属性:
1.3 配置yaml
spring:
elasticsearch:
rest:
uris: 192.168.72.143:9200
这⾥是因为我是单机模式,9200端⼝,但是如果是集,就是9300端⼝,为了演⽰⽅便直接这样配置,但是⼀般公司使⽤的是集,就需要配置集的配置,或者在es的bean⾥⾯做⽂章都可以
2. 索引库操作
其实会使⽤kibana进⾏命令操作,在代码层⾯也是⼀样的,只不过命令换成了⽅法和⼀些类;下午结合kibana命令对应java代码进⾏展⽰
2.1 创建索引库
在kibana当中,创建索引库是这样操作
PUT wang_index_01
{
"settings":{
"number_of_shards":1,
"number_of_replicas":1
}
}
对应java代码:
// 创建索引
CreateIndexRequest indexRequest =new CreateIndexRequest ("wang_index_01");
//分⽚参数
indexRequest.settings(Settings.builder()
//分⽚数
.put("index.number_of_shards",1)
// 副本数
.put("index.number_of_replicas",1)
);
// 创建索引操作客户端
IndicesClient indices = client.indices();
// 创建响应结果
CreateIndexResponse createIndexResponse = ate(indexRequest, RequestOptions.DEFAULT);
//获取响应值
boolean acknowledged = createIndexResponse.isAcknowledged();
System.out.println("acknowledged = "+ acknowledged);
2.2 查询索引库
在kibana当中,查询索引库是这样操作
GET wang_index_01
对应java代码:
GetIndexRequest getIndexRequest =new GetIndexRequest();
getIndexRequest.indices("wang_index_01");
GetIndexResponse getIndexResponse = client.indices().get(getIndexRequest, RequestOptions.DEFAULT);
System.out.println("getIndexResponse = "+ getIndexResponse);
2.3 删除索引库
在kibana当中,删除索引库是这样操作
DELETE wang_index_01
对应java代码:
DeleteIndexRequest deleteIndexRequest =new DeleteIndexRequest("wang_index_01");
AcknowledgedResponse delete = client.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);
boolean acknowledged = delete.isAcknowledged();
System.out.println("acknowledged = "+ acknowledged);
2.4 总结
当使⽤es的客户端 RestHighLevelClient 时,对于索引库操作,不涉及映射,先获取他的索引库客户端
// 创建索引操作客户端
IndicesClient indices = client.indices();
然后借助idea的提⽰,会出现⼀系列API
每个API都可以同步或异步调⽤。 同步⽅法返回⼀个响应对象,⽽异步⽅法的名称以async后缀结尾,
需要⼀个参数,⼀旦收到响应或错误,就会被通知(由低级客户端管理的线程池)。
然后你就可以根据⽅法的提⽰,创建响应的api,做响应的操作,其他们都有⼀个共同的接⼝爸爸IndicesRequest ,有兴趣可以多了解⼀下
对于索引库的操作API:
创建索引库: CreateIndexRequest
springboot是啥查询索引库:GetIndexRequest
删除索引库:DeleteIndexRequest
对于索引的操作是基于***IndexRequest来进⾏操作的。
常见操作中还有校验索引是否存在:exists
3. 索引映射操作
3.1 创建映射
因为之前在2.1⼩章节,我们已经创建过索引库,所以这⾥就直接创建映射操作
在kibana当中,在已有索引库创建映射如下
PUT /wang_index_01/_mapping
{
"properties":{
"address":{
"type":"text",
"analyzer":"ik_max_word"
},
"userName":{
"type":"keyword"
},
"userPhone":{
"type":"text",
"analyzer":"ik_max_word"
}
}
}
对应java代码如下:
PutMappingRequest putMappingRequest =new PutMappingRequest("wang_index_01");
XContentBuilder builder = XContentFactory.jsonBuilder()
.startObject()
.startObject("properties")
.startObject("address")
.field("type","text")
.
field("analyzer","ik_max_word")
.endObject()
.startObject("userName")
.field("type","keyword")
.endObject()
.startObject("userPhone")
.field("type","text")
.field("analyzer","ik_max_word")
.endObject()
.endObject()
.endObject();
PutMappingRequest source = putMappingRequest.source(builder);
AcknowledgedResponse acknowledgedResponse = client.indices().putMapping(source, RequestOptions.DEFAULT);
boolean acknowledged = acknowledgedResponse.isAcknowledged();
System.out.println("acknowledged = "+ acknowledged);
其实代码根命令没啥区别,startObject你可以理解为是{ ,endObject可以理解为是} ,对应看kibana的命令你就特别熟悉了,简直⼀模⼀样;
3.2 查看映射
在kibana当中,查询映射:
GET wang_index_01/_mapping
对应java代码如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。