安装好之后在浏览器装一个es-head-master的插件就可在浏览器直接访问es的可视化界面
我这边使用es主要是涉及了创建索引(index名称),删除索引(index名称),判断索引是否存在(index名称),查询全部索引,新增数据(索引名称,数据对象),删除数据(index名称,数据id),获取某一条数据(index名称,数据id),分页查询数据(index名称,数据id,分页参数)
配置文件
# es
spring.elasticsearch.rest.uris=ip:9200
spring.elasticsearch.rest.connection-timeout=10s
spring.elasticsearch.rest.read-timeout=30s
我使用的ES依赖
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>8.7.1</version>
</dependency>
创建索引
@Resource
public RestHighLevelClient restHighLevelClient;
public CommonResult CreateIndex(@RequestBody EsCreateVo esCreateVo) throws IOException {
//判断索引是否存在
GetIndexRequest requests = new GetIndexRequest(esCreateVo.getIndex());
XContentBuilder mappingBuilder = XContentFactory.jsonBuilder();
mappingBuilder.startObject();
{
mappingBuilder.startObject("properties");
{
mappingBuilder.startObject("id");
{
mappingBuilder.field("type", "text");
mappingBuilder.field("analyzer", "standard");
}
mappingBuilder.endObject();
mappingBuilder.startObject("name");
{
mappingBuilder.field("type", "text");
mappingBuilder.field("analyzer", "standard");
}
mappingBuilder.endObject();
mappingBuilder.startObject("time");
{
mappingBuilder.field("type", "text");
mappingBuilder.field("analyzer", "standard");
}
mappingBuilder.endObject();
mappingBuilder.startObject("content");
{
mappingBuilder.field("type", "text");
mappingBuilder.field("analyzer", "standard");
}
mappingBuilder.endObject();
}
mappingBuilder.endObject();
}
boolean exists = restHighLevelClient.indices().exists(requests, RequestOptions.DEFAULT);
if (!exists) {
CreateIndexRequest request = new CreateIndexRequest(esCreateVo.getIndex());
request.mapping(mappingBuilder);
CreateIndexResponse response = restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);
//判断是否创建成功
boolean acknowledged = response.isAcknowledged();
return acknowledged ? new CommonResult().success() : new CommonResult().failed("创建分类失败!");
}
return new CommonResult().failed("分类已存在!");
}
mappingBuilder.startObject() 是在创建索引的时候把索引中字段映射关系提前新建,不这样做的话,如果你查询的时候用了一些特定的条件的话,会报错(当新建索引,而且索引中没有添加过数据的