ES 概念及动态索引结构和索引更新机制

 

搜索引擎通过分片(shard)和副本(replica)实现了高性能、高伸缩和高可用。分片技术为大规模并行索引和搜索提供了支持,极大地提高了索引和搜索的性能,极大地提高了水平扩展能力;副本技术为数据提供冗余,部分机器故障不影响系统的正常使用,保证了系统的持续高可用。

 

有2个分片和3份副本的索引结构如下所示:

 

 

 

 

一个完整的索引被切分为0和1两个独立部分,每一部分都有2个副本,即下面的灰色部分。

 

在生产环境中,随着数据规模的增大,只需简单地增加硬件机器节点即可,搜索引擎会自动地调整分片数以适应硬件的增加,当部分节点退役的时候,搜索引擎也会自动调整分片数以适应硬件的减少,同时可以根据硬件的可靠性水平及存储容量的变化随时更改副本数,这一切都是动态的,不需要重启集群,这也是高可用的重要保障。

 

ElasticSearch的Schema free特性给动态提取并索引网页结构化文本内容提供了支持,使用URL的hash值来作为索引的主键(实际开发中使用URL作为主键,这里使用URLhash值是为了方便演示),当网页内容改变后,可以非常方便地更新索引。

 

下面演示了动态索引结构和索引更新机制:

  1.  

  2. 1、提交索引:

curl -XPUT http://localhost:9200/webpage/finance/85723925 -d '

{

"url" : "http://money.163.com/14/0523/02/9ST8D7KR00253B0H.html",

"title" : "中国非一线城市限购可退出 楼市限购或全面松绑",

"content" : "昨日有消息称,除北上广深之外,其他城市的限购政策可以自行调节,尤其是库存过大的地方。这意味着除四大一线城市之外的30多个限购城市,有可能全面松绑限购政策。"

}

'

 

2、服务器响应:

 

{"_index":"webpage","_type":"finance","_id":"85723925","_version":1,"created":true}

  1.  

  2. 3、查看索引结构:

需要elasticsearch-head插件,下面是安装方法:

 

plugin -install mobz/elasticsearch-head

 

浏览器访问:

 

http://localhost:9200/_plugin/head/

 



 

 

  1. 4、再次提交同样URL的索引,内容改变了:

curl -XPUT http://localhost:9200/webpage/finance/85723925 -d '

{

"url" : "http://money.163.com/14/0523/02/9ST8D7KR00253B0H.html",

"title" : "标题改了:中国非一线城市限购可退出 楼市限购或全面松绑",

"content" : "内容改了:昨日有消息称,除北上广深之外,其他城市的限购政策可以自行调节,尤其是库存过大的地方。这意味着除四大一线城市之外的30多个限购城市,有可能全面松绑限购政策。"

}

'

5、服务器响应:

 

{"_index":"webpage","_type":"finance","_id":"85723925","_version":2,"created":false}

 

可以看到,版本变为2,created为false,已经成功更新索引

 

  1. 6、再次提交同样URL的索引,不但内容改变了,而且新增了2个字段:

curl -XPUT http://localhost:9200/webpage/finance/85723925 -d '

{

"url" : "http://money.163.com/14/0523/02/9ST8D7KR00253B0H.html",

"title" : "标题改了:中国非一线城市限购可退出 楼市限购或全面松绑",

"content" : "内容改了:昨日有消息称,除北上广深之外,其他城市的限购政策可以自行调节,尤其是库存过大的地方。这意味着除四大一线城市之外的30多个限购城市,有可能全面松绑限购政策。",

"keywords" : "试探,限购政策,淡出,一次次",

"description" : "中国非一线城市限购可退出 楼市限购或全面松绑,试探 限购政策 淡出 一次次"

}

'

7、服务器响应:

 

{"_index":"webpage","_type":"finance","_id":"85723925","_version":3,"created":false}

 

  1. 8、再次查看索引结构:



 

 

可以看到,新增的两个索引字段已经添加到索引里面了

 

转载于:https://my.oschina.net/u/1024514/blog/422442

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值