您的位置:首页 > 其它

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

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

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



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

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

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

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

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}

3、查看索引结构:

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

plugin -install mobz/elasticsearch-head

浏览器访问:

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



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,已经成功更新索引

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}

8、再次查看索引结构:



可以看到,新增的两个索引字段已经添加到索引里面了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: