博客 ES创建索引

ES创建索引

   数栈君   发表于 2023-08-21 10:21  549  0

在 Elasticsearch (ES) 中,创建索引可以通过 REST API 或者编程语言客户端实现。以下是一些常见的创建索引的方法:

通过 REST API 创建索引

可以使用 Elasticsearch 的 REST API 创建索引。下面是一个使用 PUT 方法创建名为 my_index 的索引的示例:

PUT /my_index
{
    "settings": {
        "number_of_shards": 1
    },
    "mappings": {
        "properties": {
            "title": {
                "type": "text"
            },
            "description": {
                "type": "text"
            },
            "created_at": {
                "type": "date"
            }
        }
    }
}

以上请求中,我们使用 PUT 方法创建了一个名为 my_index 的索引,并在请求体中指定了索引的设置和映射。settings 字段用于指定索引的设置,例如分片数量等。mappings 字段用于指定索引的映射,即文档结构。在上面的示例中,我们定义了三个字段:title、description 和 created_at。其中,title 和 description 字段的类型是 text,created_at 字段的类型是 date。我们可以根据需要修改这些字段的类型和属性。

通过编程语言客户端创建索引

Elasticsearch 提供了多种编程语言客户端,例如 Java、Python、JavaScript 等。下面是一些常见的创建索引的方法:

Java 客户端

在 Java 客户端中,可以使用 Elasticsearch 的 REST API 或者 Elasticsearch 提供的 Java API 创建索引。下面是一个使用 Java API 创建名为 my_index 的索引的示例:

RestHighLevelClient client = new RestHighLevelClient(
    RestClient.builder(new HttpHost("localhost", 9200, "http")));

CreateIndexRequest request = new CreateIndexRequest("my_index");
request.settings(Settings.builder()
    .put("index.number_of_shards", 1)
    .put("index.number_of_replicas", 0));

XContentBuilder mappingBuilder = XContentFactory.jsonBuilder();
mappingBuilder.startObject();
{
    mappingBuilder.startObject("properties");
    {
        mappingBuilder.startObject("title");
        {
            mappingBuilder.field("type", "text");
        }
        mappingBuilder.endObject();
        mappingBuilder.startObject("description");
        {
            mappingBuilder.field("type", "text");
        }
        mappingBuilder.endObject();
        mappingBuilder.startObject("created_at");
        {
            mappingBuilder.field("type", "date");
        }
        mappingBuilder.endObject();
    }
    mappingBuilder.endObject();
}
mappingBuilder.endObject();

request.mapping(mappingBuilder);

CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);

以上代码中,我们首先创建了一个名为 my_index 的索引,并设置了索引的设置和映射。然后,我们使用 Elasticsearch 提供的 Java API 将请求发送给 Elasticsearch,创建索引。最后,我们可以根据需要处理创建索引的响应。


免责申明:


本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

0条评论
上一篇:mysql 列转行
下一篇:
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群