ElasticSearch 集群索引和分片的CURD

一、ES集群的索引

        背景:Elasticsearch会对所有输入的文本进行处理,建立索引放入内存中,从而提高搜索效率。在这一点上ES优于MYSQL的B+树的结构,MYSQL需要将索引放入磁盘,每次读取需要先从磁盘读取索引然后寻找对应的数据节点,但是ES能够直接在内存中就找到目标文档对应的大致位置,最大化提高效率。

        ES为了提高搜索效率、优化存储空间做了很多工作。为了能够快速定位到目标文档,ES使用倒排索引技术来优化搜索速度,虽然空间消耗比较大,但是搜索性能提高十分显著。

        ES的filter语句采用了Roaring Bitmap技术来缓存搜索结果,保证高频filter查询速度的同时降低存储空间消耗。

(一)索引(index):

用户写入ES集群的逻辑单元。

(二)分片(shard):

一个索引最少一个分片。将索引的数据分布式的存储在ES集群。

(三)副本(replica):

一个分片可以有0个或多个副本。为同一个分片数据提供数据冗余。

(四)文档(docment):

1.所有的数据都是以文档的形式存储,并存储在分片中。

2.数据对应一个json的object数据类型存储。

(五)主分片和副本分片的区别:

主分片可以用于读写操作(rw)。
副本分片仅能用于读取操作(ro)。    

二、分片

默认半数分片写入成功即可:主分片数量+副本分片数量+1

三、集群的颜色:

(一)绿色 GREEN

表示所有的主分片和副本分片均正常工作。

(二)黄色 YELLOW

表示有部分副本分片不正常工作。

(三)红色RED

表示有部分主分片不正常工作。

四、索引管理

(一)Google浏览器安装插件试图查看索引状态

(二)查看索引

1.查看所有的索引
curl -X GET 10.0.0.151:9200/_cat/indices
2.查看单个索引
10.0.0.151:9200/.geoip_databases

(二)创建索引

1.创建默认索引
curl -XPUT 10.0.0.151:9200/oldboyedu-linux85
{
    "settings":{
        "number_of_shards":3
    }
}

2.创建指定的分片

创建yedu-linux85索引,具备三个分片一个副本;

三个分片一个副本


    

3.创建指定的分片和副本
curl -XPUT 10.0.0.151:9200/yedu-linux87
{
    "settings":{
        "number_of_shards":3
    }
}

 三个分片,0个副本

 4.创建指定分片,让部分分片不能工作

5个分片,3个副本

1个主分片+3个副本分片 >  主机数量 ;会限制一个主分片+3个副本分片

现象:有部分分片没有正常工作,显示黄色

2个副本+1个主分片 = 3个 没有超过主机数量

 

(三)修改索引

1.修改副本

1、5个分片+1个副本

2、1个主分片+1个副本 < 主机数量

 

2.修改分片

修改分片失败;

失败的原因:文档写入哪个分片编号计算公式=hash(文档ID) % primary_shards_numbers ----> [0,2]

(四)删除索引

1.删除单个索引
curl -XDELETE 10.0.0.151:9200/yedu-linux88-002

 

2.基于通配符删除多个索引

 

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值