赞
踩
安装 分布式的 Elasticsearch ,启动一个master 和两个 slave 进行操作,以及 启动 Kibana。
进入ElasticSearch Head 插件,点击索引分页选项卡
点击新建索引,输入索引名称(索引名称不可重复)和选择分片与副本数
创建完成,如下:
补充:
创建完索引之后,在ElasticSearch Head插件中可以看到如下图。
其中 加粗框的表示主分片,细框的表示副本。所以 0、1、2、3、4表示索引(index)的分片,而左边的Kibana_1索引就只有一个主分片和一个副本。
点击 框,可以看到如下图,根据其中的primary属性查看是否为主分片。
主分片
副本
PUT方式 发送 http://localhost:9200/test
创建成功:
启动Kibana后,浏览器输入localhost:5601
,进入Dev Tools
输入命令 【 PUT 索引名 】,点击命令后面的执行图标,即可。如下:
PUT test # 默认分片数和副本数
PUT test # 设置分片数和副本数
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
}
}
创建成功:
但是请求方式创建的索引,Elasticsearch 默认为分片数和副本数都为1
补充:
索引名不能重复,唯一的。重复创建索引错误:
索引名称不能有大写字母。创建含有大写字母索引错误:
创建索引时,需要注意分片数的分配,分片数创建完后便不可在修改,建议使用带有分片数和副本数配置的方式创建索引(副本可修改)
在通过请求方式创建完索引之后,我们发现索引的分片数和副本数都为1,一般情况下,不能满足我们的需求。那么我们该怎么修改索引的分片数和副本数属性呢?
PUT 索引名称/_settings
{
"number_of_replicas": number
}
如:
PUT test/_settings
{
"number_of_replicas": 2
}
修改成功:
这时就有人问,那么分片呢?还记得我们讲解ElasticSearch 的架构设计与说明中说的,分片与路由吗?它是通过一个hash来路由分片存储,所以修改分片后就导致路由乱套,就导致分片找不到。
但是我们可以在创建索引之前,修改默认的分片数。Elasticsearch 默认分片数量为100。可使用如下请求方式修改为10000
PUT /_cluster/settings
{
"persistent":{
"cluster":{
"max_shards_per_node":10000
}
}
}
PUT 索引名/_doc/编号
{
"titile":"我和我的爱人"
}
如:
PUT index/_doc/001
{
"titile":"我和我的爱人"
}
添加成功:
默认设置中,索引具备读写权限,但读写权限可关闭:
关闭索引读权限:
PUT 索引名称/_settings
{
"blocks.read":true
}
如:
PUT index/_settings
{
"blocks.read":true
}
关闭索引写权限:
PUT 索引名称/_settings
{
"blocks.write":true
}
如:
PUT index/_settings
{
"blocks.write":true
}
写入数据,被阻挡:
补充:
blocks.write:设置索引写的权限
blocks.read:设置索引读的权限
blocks.read_only:设置索引只可读的权限
GET 索引名称/_settings
如:
GET index/_settings
查看多个索引信息:
GET 索引名称1,索引名称2,.,.,./_settings
如:
GET index,test/_settings
查看所有索引信息:
GET _all/_settings
DELETE 索引名称
如:
DELETE test
POST 索引名称/_close
如:
POST index/_close
POST 索引名称/_open
如:
POST index/_open
补充:
POST _reindex
{
"source": {"index","被复制索引名称"},
"dest": {"index":"复制成的索引名称"}
}
如:
POST _reindex
{
"source": {"index":"index"},
"dest": {"index":"index_copy"}
}
从上图我们看出,复制的索引与被复制索引分片数与副本数不一样。其实复制索引就是复制索引的数据:
删除索引别名:
POST /_aliases { "actions": [ { "add": { "index": "索引名称", "alias": "索引别名" } } ] } 如: POST /_aliases { "actions": [ { "add": { "index": "index_copy", "alias": "index_copy_aliases" } } ] }
删除索引别名:(修改 请求中的add改为remove即可)
POST /_aliases { "actions": [ { "remove": { "index": "索引名称", "alias": "索引别名(起好的别名)" } } ] } 如: POST /_aliases { "actions": [ { "remove": { "index": "index_copy", "alias": "index_copy_aliases" } } ] }
GET /索引名称/_alias
如:
GET /index_copy_aliases/_alias
查看别名对应的索引:
GET /索引名称/_alias
如:
GET /index_copy/_alias
查看集群上所有可用别名:
GET /_alias
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。