Elasticsearch 使用 RESTful API 操作索引

之前我们已经了解了 ES 中一些比较重要的概念,也搭建好了使用 ES 所需的基础环境,那现在就可以开始使用 ES 了。

使用 ES 其实主要就是操作索引文档。接下来的问题就是如何去操作了,ES 提供了许多常见语言的支持,但这不是我们目前的重点,我们先看如何用 RESTful API 去操作 ES,我们选择 Kibana 来发送 RESTful 请求,当然你也可以使用其它工具。

操作索引相对简单些,也不会经常去修改索引。接下来我们先学习常用操作索引的 API。

1、创建索引

创建索引时只指定索引名,注意索引名是唯一的,不能包含大写字母

PUT user

通过 Elasticsearch head 工具可以看到创建的索引,以及其详细信息:


绿色方框数字表示索引的分片,点击可以查看分片信息。粗线框表示主分片,细线框表示副本分片


可以看到索引默认的分片和副本分片数量都是1,同时也没有文档字段的相关约束信息。

创建索引时我们也可以指定一些基本信息,例如分片数量:

PUT user
{
  "settings": {
    "index": {
      # 每个索引的主分片数
      "number_of_shards": 2,
      # 每个主分片对应的副本分片数
      "number_of_replicas": 1
    }
  }
}

当然你也可以使用 head 工具创建索引:


2、添加文档

有了索引,就可以向文档中添加一条文档数据了,这里使用默认的类型名_doc,1为文档id,不指定的话 ES 会给一个默认值:

POST /user/_doc/1
{
  "name": "马老师",
  "age": 30,
  "label": [
    "不讲武德",
    "耗子尾汁"
  ]
}

在 head 工具中以 JSON 格式查看数据:


关于文档的操作后边会详细介绍,这里仅仅是为了帮助学习索引的内容。

3、查看索引信息

前边使用了 head 工具查看索引信息,也可以使用如下 API:

GET user

在添加了一条文档数据后的索引信息如下:


4、修改索引

如下修改了索引禁止添加文档,允许读文档,即true表示禁止,false表示允许:

PUT user/_settings
{
  "blocks.write": true,
  "blocks.read": false
}

5、关闭、打开索引

# 关闭索引
POST user/_close
# 打开索引
POST user/_open

6、创建索引别名

如下为索引user创建了一个user_info别名,如果别名是唯一的,也可以用来代替索引名

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "user",
        "alias": "user_alias"
      }
    }
  ]
}

add修改为remove表示移除别名。

7、删除索引

DELETE user

关于索引的操作就先介绍这么多吧,常用的操作也都可以在 head 工具中直接完成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容