ElasticSearch学习API及集成JAVA使用介绍
创建
创建索引
Http
PUT {ip}:{port}/{indexName}
127.0.0.1:9200/shopping
Java
public static void createIndex() {
//创建客户端
RestHighLevelClient client = EsUtils.createES();
try {
CreateIndexRequest request=new CreateIndexRequest("users");
CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);
//返回状态
boolean ack = response.isAcknowledged();
if(ack){
log.info("创建索引成功");
}else {
log.info("创建索引失败");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭客户端
EsUtils.closeES(client);
}
}
创建文档数据
Http
文档ID自定义
PUT {ip}:{port}/{indexName} /_doc / {自定义文档ID}
127.0.0.1:9200/shopping/_doc/1文档ID自动生成
{ip}:{port}/{indexName} /_docbody json格式
{
"name": "腾讯视频",
"url": "www.tengxun.com"
}
Java
public static void CreateDoc() {
//创建客户端
RestHighLevelClient client = EsUtils.createES();
try {
IndexRequest request = new IndexRequest();
//自定义文档数据ID
request.index("users").id("1");
User user = new User("test", 11, "男");
//文档数据保存必须JSON
ObjectMapper mapper = new ObjectMapper();
String userJson = mapper.writeValueAsString(user);
request.source(userJson, XContentType.JSON);
//请求创建
IndexResponse response = client.index(request, RequestOptions.DEFAULT);
//响应
DocWriteResponse.Result result = response.getResult();
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
} finally {
EsUtils.closeES(client);
}
}
批量创建
public static void CreateBatchDoc() {
//创建客户端
RestHighLevelClient client = EsUtils.createES();
try {
//封装批量
BulkRequest request = new BulkRequest();
request.add(new IndexRequest("users").id("1").source(new ObjectMapper().writeValueAsString(new User("test", 11, "男")),XContentType.JSON));
request.add(new IndexRequest("users").id("2").source(new ObjectMapper().writeValueAsString(new User("2", 22, "女")),XContentType.JSON));
request.add(new IndexRequest("users").id("3").source(new ObjectMapper().writeValueAsString(new User("我是3", 20, "女")),XContentType.JSON));
//请求
BulkResponse response=client.bulk(request,RequestOptions.DEFAULT);
//响应
System.out.println(response.getIngestTook());
System.out.println(response.status());
System.out.println(response.getItems());
} catch (IOException e) {
e.printStackTrace();
} finally {
EsUtils.closeES(client);
}
}
创建文档数据请求映射体
Http
PUT {ip}:{port}/{indexName} / _mapping
127.0.0.1:9200/shopping/_mapping
Body – json
{
"properties": {
//约束存入数据字段 /shopping/_mapping 索引shopping前提是已经创建
"name": {
//用户名称 配置
"type":"text",//文本 支持模糊查询、分词查询
"index":true //name 字段可以索引查询
},
"six": {
//性别 配置
"type":"keyword",//完全匹配 比支持分词查询
"index":true //支持索引
},
"tel": {
//电话号码 配置
"type":"keyword",//完全匹配 比支持分词查询
"index":false //不支持索引(不支持查询tel)
}
}
}
删除
删除指定索引
Http
DELETE {ip}:{port}/{indexName}
127.0.0.1:9200/shopping
Java
public static void deleteIndexByName(String indexName){
//创建客户端
RestHighLevelClient client = EsUtils.createES();
try {
DeleteIndexRequest request=new DeleteIndexRequest(indexName);
AcknowledgedResponse response = client.indices().delete(request, RequestOptions.DEFAULT);
//响应信息
//返回状态
boolean ack = response.isAcknowledged();
if(ack){
log.info("删除索引成功")