核心概念解读
索引:
索引(index)是ElasticSearch存放具体数据的地方,是一类具有相似特征的文档的集合。ElasticSearch中索引的概念具有不同意思,这里的索引相当于关系数据库中的一个数据库实例。在ElasticSearch中索引还可以作为动词,表示对数据进行索引操作。
类型:
在6.0之前的版本,一个ElasticSearch索引中,可以有多个类型;从6.0版本开始,,一个ElasticSearch索引中,只有1个类型。一个类型是索引的一个逻辑上的分类,通常具有一组相同字段的文档组成。ElasticSearch的类型概念相当于关系数据库的数据表。
文档:
文档是ElasticSearch可被索引的基础逻辑单元,相当于关系数据库中数据表的一行数据。ElasticSearch的文档具有JSON格式,由多个字段组成,字段相当于关系数据库中列的概念。
分片:
当数据量较大时,索引的存储空间需求超出单个节点磁盘容量的限制,或者出现单个节点处理速度较慢。为了解决这些问题,ElasticSearch将索引中的数据进行切分成多个分片(shard),每个分片存储这个索引的一部分数据,分布在不同节点上。当需要查询索引时,ElasticSearch将查询发送到每个相关分片,之后将查询结果合并,这个过程对ElasticSearch应用来说是透明的,用户感知不到分片的存在。 一个索引的分片一定指定,不再修改。
副本:
其实,分片全称是主分片,简称为分片。主分片是相对于副本来说的,副本是对主分片的一个或多个复制版本(或称拷贝),这些复制版本(拷贝)可以称为复制分片,可以直接称之为副本。当主分片丢失时,集群可以将一个副本升级为新的主分片。
创建索引:
(1)简单方式
PUT test
返回
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "test"
}
(2)索引名不能包含大写字母
PUT Test
返回
{
"error": {
"root_cause": [
{
"type": "invalid_index_name_exception",
"reason": "Invalid index name [Test], must be lowercase",
"index_uuid": "_na_",
"index": "Test"
}
],
"type": "invalid_index_name_exception",
"reason": "Invalid index name [Test], must be lowercase",
"index_uuid": "_na_",
"index": "Test"
},
"status": 400
}
(3)重复创建
PUT test
返回
{
"error": {
"root_cause": [
{
"type": "resource_already_exists_exception",
"reason": "index [test/WC6GvUh1RTm1lKWfSURzTA] already exists",
"index_uuid": "WC6GvUh1RTm1lKWfSURzTA",
"index": "test"
}
],
"type": "resource_already_exists_exception",
"reason": "index [test/WC6GvUh1RTm1lKWfSURzTA] already exists",
"index_uuid": "WC6GvUh1RTm1lKWfSURzTA",
"index": "test"
},
"status": 400
}
(4)指定参数
PUT blog
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
}
}
返回
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "blog"
}
查看索引:
(1)查看指定索引的配置信息
GET blog/_settings
返回
{
"blog": {
"settings": {
"index": {
"creation_date": "1547090371599",
"number_of_shards": "3",
"number_of_replicas": "1",
"uuid": "xwD2Y5k3TXOyNTJQ2lBitw",
"version": {
"created": "6030099"
},
"provided_name": "blog"
}
}
}
}
(2)查看多个索引
GET blog,test/_settings
返回
{
"blog": {
"settings": {
"index": {
"creation_date": "1547090371599",
"number_of_shards": "3",
"number_of_replicas": "1",
"uuid": "xwD2Y5k3TXOyNTJQ2lBitw",
"version": {
"created": "6030099"
},
"provided_name": "blog"
}
}
},
"test": {
"settings": {
"index": {
"creation_date": "1547090207687",
"number_of_shards": "5",
"number_of_replicas": "1",
"uuid": "WC6GvUh1RTm1lKWfSURzTA",
"version": {
"created": "6030099"
},
"provided_name": "test"
}
}
}
}
(3)删除索引
DELETE test
返回
{
"acknowledged": true
}
索引的打开与关闭
(1)关闭索引
POST blog/_close
返回
{
"acknowledged": true
}