来源:https://mp.weixin.qq.com/s/46fuveML5jYWlxhsuslX6w
索引简介
索引是具有相同结构的文档集合,我们对elasticsearch的大部分操作都是 基于索引来完成,在Elasticsearch中,文档归属于一种 类型(type) ,在 5.X 版本中,一个 index 下可以创建多个 type;在 6.X 版本中,一个 index 下只能存在一个 type;在 7.X 版本中,直接去除了 type 的概念,就是说 index 不再会有 type。而类型存在于索引(index)中。
Relational DB ⇒Databases ⇒Tables ⇒ Rows ⇒Columns关系型数据库
数据库表行列 Elasticsearch⇒Indices ⇒Types ⇒Documents ⇒FieldsEls 索引类型文档域(字段)
1.es不支持事务。
2.也没有oracle的用户的概念,es有安全控制是通过xpack实现,但是是针对访问全局的安全控制。
3.另外也不支持类似数据库中通过外键的复杂的多表关联操作。
索引管理
创建索引
PUT /user_info
可以看出默认是一个分片一个副本,副本未分配,一个索引的分片数一经创建后不能在修改,虽然新版提供了修改功能,但是我们可以看到它修改后也是新建立的索引,原来的索引并没有变化。
查看某个索引的信息
创建索引与创建关系型数据库是一样的,注意elasticsearch索引名不能出现大写字母,如有多个字母一下划线区分。如创建用户信息 user_info
查看索引
使用GET方法加上_setting参数可以查看一个索引的所有配置信息,例如查看user_info索引的设置信息,命令如下:
查看索引的信息
GET user_info/_settings
查看配置可以看到确实是number_of_shards一个number_of_replicas一个
修改索引
修改索引的副本,es支持已经存在的索引副本修改,我们把user_info修改2个副本
1、dsl修改
PUT user_info/_settings
{
"number_of_replicas":2
}
查看索引信息
索引别名
索引别名就是给一个索引或者多个索引起的另一个名字,索引别名是一个非常有用的功能,尤其在数据要重新导入时可以很优雅的切换数据为名为user_info的索引,创建别名user_info_alicas。
创建别名
PUT /_aliases
{
"actions":[{"add":{"index":"user_info","alias":"user_info_alicas"}}]
}
可以看到已经给user_info建立了索引
删除别名
移除别名:
PUT /_aliases
{
"actions":[{"remove":{"index":"user_info","alias":"user_info_alicas"}}]
}
索引模板
针对一批大量数据存储的时候需要使用多个索引库,如果手工指定每个索引库的配置信息(settings和mappings)的话就很麻烦了。所以,这个时候,就存在创建索引模板的必要了。
创建模板
PUT _template/template_1
{
"index_patterns": ["te*", "bar*"],
"settings": {
"number_of_shards": 1
},
"mappings": {
"_source": {
"enabled": false
},
"properties": {
"host_name": {
"type": "keyword"
},
"created_at": {
"type": "date",
"format": "yyyy-MM-dd"
}
}
}
}
删除索引模板
DELETE /_template/template_1
来源:https://mp.weixin.qq.com/s/pgYIzfEwGSLjTx7xOuAILg