• 使用 Java RestClient 与 Elasticsearch 进行索引管理的示例



    在这篇博客中,我将和大家分享如何使用 Java RestClient 与 Elasticsearch 进行简单的索引管理操作。如果你在开发过程中需要对海量数据进行高效搜索和分析,Elasticsearch 可能是个不错的选择。下面,我会通过一个 Java 类 ElasticTest 来演示如何创建、查询和删除索引,希望对你有所帮助。

    准备工作

    在开始之前,我们需要先创建一个 Elasticsearch 客户端。这次我们用的是 RestHighLevelClient,它可以让我们更轻松地与 Elasticsearch 进行交互。在每个测试方法运行前,我们都会初始化客户端,并在测试结束后关闭它,以确保资源被正确释放。

    @BeforeEach
    void setUp() {
        client = new RestHighLevelClient(RestClient.builder(HttpHost.create("http://192.168.xxx.xxx")));
    }
    
    @AfterEach
    void tearDown() throws IOException {
        if (client != null) {
            client.close();
        }
    }
    

    测试连接

    我们可以先测试一下与 Elasticsearch 的连接情况。通过简单地打印客户端对象,我们可以确认连接是否成功。

    @Test
    void testConnection() {
        System.out.println("client=" + client);
    }
    

    如果你看到客户端对象的信息被打印出来,说明连接已经建立成功了。

    创建索引

    创建索引是我们存储和管理数据的第一步。在下面的代码中,我们定义了一个名为 items 的索引,并为它设置了一些字段属性。

    @Test
    void testCreateIndex() throws IOException {
        // 1.准备Request对象
        CreateIndexRequest request = new CreateIndexRequest("items");
        // 2.准备请求参数
        request.source(MAPPING_TEMPLATE, XContentType.JSON);
        // 3.发送请求
        client.indices().create(request, RequestOptions.DEFAULT);
    }
    

    这个方法会创建一个新的索引,并根据定义的模板为它设置字段属性。创建完成后,你就可以往这个索引中添加数据了。

    查询索引是否存在

    有时候,我们需要知道一个索引是否已经存在,以避免重复创建或者误删。这段代码演示了如何检查索引的存在性。

    @Test
    void testGetIndex() throws IOException {
        // 1.准备Request对象
        GetIndexRequest request = new GetIndexRequest("items");
        // 3.发送请求
        boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
        System.out.println("exists=" + exists);
    }
    

    如果索引存在,这个方法会输出 true;否则,它会输出 false

    删除索引

    如果一个索引不再需要了,我们可以将其删除,以节省资源。这段代码展示了如何删除一个索引。

    @Test
    void testDeleteIndex() throws IOException {
        // 1.准备Request对象
        DeleteIndexRequest request = new DeleteIndexRequest("items");
        // 3.发送请求
        client.indices().delete(request, RequestOptions.DEFAULT);
    }
    

    总结

    通过上面的例子,我们可以看到使用 Java RestClient 与 Elasticsearch 进行索引管理其实并不复杂。创建、查询和删除索引是最基础的操作,但它们也是构建强大搜索功能的起点。在实际开发中,你可能需要根据项目需求进行更多的自定义操作。

  • 相关阅读:
    esp32 nvs set_blob
    C语言中的结构体对齐原则是什么?如何进行结构体的对齐控制?
    QT调用onnx 模型Demo(代码和讲解)
    5.1、nio-Bytebuffer内存结构
    通过vuex存储token,通过前置路由守卫完成对登录操作之后的token值验证,完成登录状态的保持
    hive on spark 代码方式实现
    GAIA-IR: GraphScope 上的并行化图查询引擎
    上机实验一 顺序表的基本操作和简单程序 西安石油大学数据结构
    爬虫 day 02 bs4的作用
    左神高级提升班1 很重要的题目
  • 原文地址:https://blog.csdn.net/Takumilove/article/details/140971971