前言
本节将完成ES 的索引的查询,删除
环境
前置条件文章:
【ES】JavaAPI学习-01 环境配置 索引创建
IntelliJ IDEA 2021.2.3 (Community Edition)
Postman-win64-8.12.4
elasticsearch-7.15.0-windows-x86_64
实现
点一下ESTest_Index_Create.java文件,按ctrl + c ,然后ctrl + v,我们复制这个class文件,然后命名为:
索引查询
ESTest_Index_Search
ESTest_Index_Search.java 有实现如下:
package com.zwy.es;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.elasticsearch.client.indices.GetIndexResponse;
import java.io.IOException;
public class ESTest_Index_Search {
public static void main(String[] args) throws IOException {
//
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http"))
);
// 查询索引
GetIndexRequest request = new GetIndexRequest("users"); // 创建请求对象
GetIndexResponse getIndexResponse = esClient.indices().get(request, RequestOptions.DEFAULT);
// 响应状态
System.out.println(getIndexResponse.getAliases());
System.out.println(getIndexResponse.getMappings());
System.out.println(getIndexResponse.getSettings());
// 关闭ES客户端
esClient.close();
}
}
代码概要:
创建GetIndexRequest对象,这个对象将用于定义我们要查询的索引。
GetIndexRequest request = new GetIndexRequest("users");
在这里,我们指定了要查询的索引名为"users"。
使用esClient.indices().get()方法发送索引查询请求,并获取响应。
GetIndexResponse getIndexResponse = esClient.indices().get(request, RequestOptions.DEFAULT);
从响应中获取并打印索引的相关信息:
getIndexResponse.getAliases():返回索引的所有别名(如果有的话)。
getIndexResponse.getMappings():返回索引的映射信息,包括字段类型、分析器设置等。
getIndexResponse.getSettings():返回索引的设置信息,包括分片数、副本数、刷新间隔等。
System.out.println(getIndexResponse.getAliases());
System.out.println(getIndexResponse.getMappings());
System.out.println(getIndexResponse.getSettings());
这段主要通过Elasticsearch查询名为"users"的索引,并打印出该索引的别名、映射和设置信息,这些信息可以帮助我们了解索引的结构和配置,以便进行进一步的数据操作或优化。
索引删除
继续复制ESTest_Index_Search.java,命名为ESTest_Index_Delete:
ESTest_Index_Delete.java
package com.zwy.es;
import org.apache.http.HttpHost;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.support.master.AcknowledgedResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.elasticsearch.client.indices.GetIndexResponse;
import java.io.IOException;
public class ESTest_Index_Delete {
public static void main(String[] args) throws IOException {
//
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http"))
);
// 查询索引
DeleteIndexRequest request = new DeleteIndexRequest("users"); // 创建请求对象
AcknowledgedResponse response = esClient.indices().delete(request, RequestOptions.DEFAULT);
// 响应状态
System.out.println(response.isAcknowledged());
// 关闭ES客户端
esClient.close();
}
}
创建DeleteIndexRequest对象,这个对象将用于定义我们要删除的索引。
DeleteIndexRequest request = new DeleteIndexRequest("users");
在这里,我们指定了要删除的索引名为"users"。
使用esClient.indices().delete()方法发送索引删除请求,并获取响应。
AcknowledgedResponse response = esClient.indices().delete(request, RequestOptions.DEFAULT);
从响应中获取并打印删除操作是否被确认的信息。
System.out.println(response.isAcknowledged());
如果返回true,表示删除操作已被Elasticsearch节点成功接收和处理;如果返回false,则可能需要检查网络连接或Elasticsearch集群状态。
这段功能通过Elasticsearch删除名为"users"的索引,并打印出删除操作是否被确认的信息,删除索引是不可逆的操作,一旦执行,该索引及其包含的所有文档将被永久删除,应该在实际应用中谨慎操作
文件结构
有文件结构如下:
运行
我们ESTest_Index_Search.java 有运行结果如下:
在POSTMAN中创建GET 请求,地址如下:
http://127.0.0.1:9200/users
发送请求:
可以看到其实和ESTest_Index_Search.java的索引查询结果是一样的。
运行 ESTest_Index_Delete.java 结果如下: