概念
一个存储关联数据的地方,实际上,索引只是一个用来指向一个或多个分片(shards)的"逻辑命名空间"
注意:
- 索引的名称要全部小写
- 把ES中的索引类比成关系型数据库中的数据库是不准确的
查看集群中的索引
GET _cat/indices?v
结果
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana Ofp-_kgVRP6yk77EMCjU9w 1 0 1 0 4kb 4kb
- health(索引健康):green为正常,yellow表示索引不可靠(单节点),red索引不可用。与集群健康状态一致
- status(状态):open表明索引打开
- index(索引名称):表示集群中的索引名称
- uuid:索引内部随机分配的名称,表示唯一标识这个索引
- pri(主分片):表示索引的主分片数
- rep(副本):表示索引的副本数
- docs.count(文档数):表示索引中的文档数量
- docs.deleted(已删除文档数):表示索引中被删除的文档数
- store.size(索引储存的总容量):如果所有副本都被分配到了节点上,索引储存总容量=主分片总容量*(主分片数+副本数)
- pri.store.size(主分片的总容量):主分片上储存的容量
新建索引
默认配置
PUT /mytest
指定分片和副本
PUT /mytest1
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
}
}
指定mapping
PUT /mytest2
{
"mappings":{
"books":{
"properties":{
"title":{
"type":"text",
"analyzer":"ik_max_word"
},
"language":{
"type":"keyword"
},
"author":{
"type":"keyword"
},
"price":{
"type":"double"
},
"year":{
"type":"date",
"format":"yyyy-MM-dd"
},
"desc":{
"type":"text",
"analyzer":"ik_max_word"
}
}
}
}
}
指定分析器
PUT /mytest3
{
"settings": {
"analysis": {
"char_filter": {},
"tokenizer": {},
"filter": {
"pinyin_filter":{
"type":"pinyin",
"keep_first_letter":false,
"keep_original":true,
"keep_none_chinese":true,
"keep_none_chinese_together":true
}
},
"analyzer": {
"ik_pinyin_analyzer":{
"type":"custom",
"char_filter":["html_strip"],
"tokenizer":"ik_max_word",
"filter":["pinyin_filter"]
}
}
}
}
}
查看索引配置
GET /mytest2/_settings
打开索引
POST /mytest2/_open
关闭索引
POST /mytest2/_close
删除索引
删除指定索引
DELETE /mytest
使用通配符
DELETE /mytest*