动态索引结构和索引更新机制

 

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

 

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

  1. 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. 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、再次查看索引结构:



 

 

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

 

猜你喜欢

转载自yangshangchuan.iteye.com/blog/2103647