创建索引
- 最基本创建索引命令
curl -XPUT http://localhost:9200/index_name
-
索引命名规范
a. 仅限小写
b. 不能包含 , /, *, ?, ", <, >, |,(空格字符), , #
c. 不能包含冒号
d. 不能以,_,+开头
e. 不能是.或…
f. 不能超过255个字节 -
索引设置(每个索引创建时可以包含关联的特定设置)
上图创建了三个分片,2个副本
-
Mappings(创建索引时可提供一个type的mapping)
-
Aliases(创建索引还可以提供一组别名)
-
Wait For Active Shards
a. 默认情况,索引创建仅在每个分片的主副本已启动或请求超时才返回对客户端的响应
创建索引的响应:
b. acknowledged:表是否在集群成功创建索引,为false时,可能在使用新创建索引更新集群状态之前超时,但索引很快会被创建
c. shards_acknowledged :表在超时前,是否启动了必须数量的分片副本,为false时,可能在必须数量的分片启动前超时了 【这里有点模糊,后续再理解】
d.可通过index.write.wait_for_active_shards修改默认的索引设置
删除索引
- 删除已存在的索引
- 可以制定具体的索引名称或通配符表达式
- 别名不可用于删除索引
- 删除索引的API可以指定多个索引,使用逗号分隔,或通过*删除出所有index
- 可以通过将action.destructive_requires_name设置为true 来禁用 通配符 或 _all 删除索引
GET Index
-
Get Index API 可用来检索一或多个索引信息
-
可以指定Index、别名或通配符表达式
-
可以使用_all或*查看所有index
-
Indices Exists
a. 检查索引是否存在 -
Open/Close Index
a. 关闭的索引在集群上几乎没有开销(除了维护其元数据),不允许读写操作
b. 一个关闭的索引可被打开,然后进行正常的恢复流程
c. Rest端点为: /{index}/_close、/{index}/_open
d. 可打开和关闭多个索引,若请求的索引不存在,则抛出错误,可设置ignore_unavailable=true 禁用该行为
e. _all或*可以关闭所有索引,可在配置文件中设置action.destructive_requires_name为true,禁用通过通配符或_all识别索引
f. 关闭的索引占用大量磁盘空间,会导致托管环境出问题,可通过集群的设置API将cluster.indices.close.enable to flase 设置为fasle
g. 查看索引状态