在Elasticsearch中的索引管理主要包括建立索引,删除索引,获取索引,判断索引是否存在,打开关闭索引接口。app
建立索引curl
建立索引接口容许系统建立实例化索引,Elasticsearch支持建立多个索引,包括对多个索引的操做。elasticsearch
建立索引ui
curl -XPUT 'http://localhost:9200/twitter/'url
curl -XPUT 'http://localhost:9200/twitter/' -d '
spa
index :索引
number_of_shards : 3 接口
number_of_replicas : 2'ci
number_of_shards 索引设置主分片的数量,默认是5,占用5个分片。string
number_of_replicas 索引副本分片的数量,默认是1个。
上面第二个curl示例展现了建立一个‘twitter’的索引时使用YAML语法进行自定义设置。
在这个例子中,建立了一个拥有3个主分片的索引,每一个分片有2个副本分片。
上面示例对应的JSON格式以下:
curl -XPUT 'http://localhost:9200/twitter/' -d '{
"settings" : {
"index" : {
"number_of_shards" : 3,
"number_of_replicas" : 2
}
}
}'
或者简写成:
curl -XPUT 'http://localhost:9200/twitter/' -d '{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 2
}
}'
提示:不必写全settings中的index选项。
映射:建立索引容许你设置一个或多个映射。
curl -XPOST localhost:9200/test -d '{
"settings" : {
"number_of_shards" : 1
},
"mappings" : {
"type1" : {
"properties" : {
"field1" : { "type" : "string", "index" : "not_analyzed" }
}
}
}
}'
删除索引
删除索引示例:
curl -XDELETE 'http://localhost:9200/twitter/'
上面的示例删除了名为twitter的索引。删除索引须要指定索引名称,别名或者通配符。
删除索引能够使用逗号分隔符,或者使用_all或*号删除所有索引。
注意:_all 或 * 删除所有索引时要谨慎操做。
为了防止误删除,能够设置config/elasticsearch.yml属性action.destructive_requires_name为true,禁止使用通配符或_all删除索引,必须使用名称或别名才能删除该索引。
获取索引
获取索引接口容许从一个或多个索引中获取信息。
curl -XGET 'http://localhost:9200/twitter/'
上面的示例获取名为twitter的索引。获取索引须要指定索引名称,别名或者通配符。
获取索引能够使用通配符获取多个索引,或者使用_all或*号获取所有索引。
返回结果过滤:
能够自定义返回结果的属性。
curl -XGET 'http://localhost:9200/twitter/_settings,_mappings'
上面示例只返回twitter索引的settings和mappings属性。
可配置的属性包括_settings, _mappings, _warmers and _aliases。
判断索引是否存在
若是只想检查索引存在的状态,而不须要获取内容,使用HEAD代替GET,返回内容不包括索引内容。
用来检查索引是否存在。以下:
curl -XHEAD -i 'http://localhost:9200/twitter'
HTTP状态码标识索引是否存在。索引存在返回200,不存在返回404。
打开关闭索引接口
打开/关闭索引接口容许关闭一个打开的索引或者打开一个已经关闭的索引。关闭的索引只能显示索引元数据信息,不可以进行读写操做。
打开/关闭索引的方式是/{索引名}/_close 或者/{索引名}/_open,完整示例以下:
curl -XPOST 'localhost:9200/my_index/_close'
curl -XPOST 'localhost:9200/my_index/_open'
能够同时打开或关闭多个索引。若是指向不存在的索引会抛出错误。能够使用配置ignore_unavailable=true,不显示异常。
使用_all打开或关闭所有索引,或者使用通配符表示所有(好比 *)
设置config/elasticsearch.yml属性action.destructive_requires_name为true,禁止使用通配符或者_all标识索引。
由于关闭的索引会继续占用磁盘空间而不能使用,因此关闭索引接口可能形成磁盘空间的浪费。
禁止使用关闭索引功能,能够设置settingscluster.indices.close.enable为false,默认是true。
赛克蓝德(secisland)后续会逐步对Elasticsearch的最新版本的各项功能进行分析,近请期待。也欢迎加入secisland公众号进行关注。