要清空Elasticsearch索引中的所有数据,您可以使用Java RestHighLevelClient库中的deleteByQuery API。以下是一个示例代码,该代码清空名为"my_index"的索引中的所有数据:

import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.deletebyquery.DeleteByQueryRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.MatchAllQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;

import java.io.IOException;

public class ClearIndexData {
    public static void main(String[] args) {
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(new HttpHost("localhost", 9200, "http")));

        try {
            // 创建一个deleteByQuery请求,指定要删除的索引和查询条件
            DeleteByQueryRequest request = new DeleteByQueryRequest("my_index");
            MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();
            request.setQuery(matchAllQueryBuilder);

            // 执行删除操作
            DeleteByQueryResponse response = client.deleteByQuery(request, RequestOptions.DEFAULT);

            // 检查删除操作的结果
            if (response != null && response.getTotalDeleted() > 0) {
                System.out.println("Deleted " + response.getTotalDeleted() + " documents");
            } else {
                System.out.println("No documents deleted");
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                client.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

请注意,为了使用RestHighLevelClient,您需要在Maven或Gradle项目中添加相应的依赖项。确保您的Elasticsearch服务器正在运行,并且端口号和索引名称正确

elasticsearch68 Java RestHighLevelClient 清空索引中所有的数据

原文地址: https://www.cveoy.top/t/topic/iKM3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录