在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公衆號進行關注。