文档章节

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

杨尚川
 杨尚川
发布于 2014/08/30 23:08
字数 722
阅读 2565
收藏 44

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

 

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


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




 

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

 


© 著作权归作者所有

杨尚川

杨尚川

粉丝 1103
博文 220
码字总数 1624053
作品 12
东城
架构师
私信 提问
加载中

评论(2)

杨尚川
杨尚川 博主

引用来自“曾杰”的评论

不是很清楚这个特性的应用场景,可否详细解释下?0
不需要预先定义模式,很灵活
曾杰
曾杰
不是很清楚这个特性的应用场景,可否详细解释下?0
ES6-映射(mapping)

1.mapping映射概述 我们习惯上对ElasticSearch和数据库做了一些对比,索引(index)相当于数据库,类型(type)相当于数据表,映射(Mapping)相当于数据表的表结构。 ElasticSearch中的映射(M...

贾峰uk
2018/07/02
241
0
索引:如何在海量数据中快速查找某个数据?

转自:https://blog.csdn.net/everyday/article/details/90763607 《数据结构与算法之美》 前面讲过MySQL数据库索引实现原理,底层是依赖B+树这种数据结构来实现的。那类似Redisp 这要的Key...

feiquan
08/19
0
0
【搜索引擎】动态索引的建立及更新策略

动态索引的建立 真实环境中,搜索引擎需要处理的文档集合往往都是动态集合,即在建好初始的索引后,不断有新文档进入系统,同时原先的文档集合内有些文档可能被删除或更改。例如我们的本地文...

努力拼搏的80后
2018/03/25
0
0
elasticsearch 索引过程

索引过程 1 IndexRequest UUID工具自动生成一个uuid,代码在IndexRequest的process方法内。 2TransportIndexAction 根据索引数据的id、类型以及索引分片信息进行哈希取模,确定把该条数据分配...

whk66668888
2017/09/05
0
0
【数据库系统概念】第11章 索引与散列 知识总结

《数据库系统概念》第11章知识点总结 索引与散列 数据库中的索引类似与图书的索引 两种基本的索引类型 (1)顺序索引:基于值的顺序排序 (2)散列索引:基于将值平均分不到若干散列桶中。一...

qq_37792173
2017/08/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

还为PDF转Word抓狂?以下神器让你在职场倍受欢迎!

身在职场的你,是否一直在琢磨:如何能让自己在公司更受欢迎?如何才能在办公室里混个好人缘?如何在同事圈里留个好印象?其实,想要让自己成为受欢迎的人,只要让自己成为大家需要的人不就行...

foxit2world
12分钟前
6
0
AndServer+Service打造Android服务器实现so文件调用

so 文件调用 随着 Android 移动安全的高速发展,不管是为了执行效率还是程序的安全性等,关键代码下沉 native 层已成为基本操作。 native 层的开发就是通指的 JNI/NDK 开发,通过 JNI 可以实...

夜幕NightTeam
14分钟前
3
0
Docker下kafka学习三部曲之二:本地环境搭建

在上一章《 Docker下kafka学习,三部曲之一:极速体验kafka》中我们快速体验了kafka的消息分发和订阅功能,但是对环境搭建的印象仅仅是执行了几个命令和脚本,本章我们通过实战来学习如何编写...

程序员欣宸
14分钟前
4
0
萌新推荐!不再为Excel转换PDF发愁,Aspose.Cells for .NET一步到位!

Aspose.Cells for .NET(点击下载)是Excel电子表格编程API,可加快电子表格管理和处理任务,支持构建具有生成,修改,转换,呈现和打印电子表格功能的跨平台应用程序。 将Excel工作簿转换为...

mnrssj
15分钟前
6
0
对于绘画小白怎么画制服?该注意什么?

怎样制作学生服装?想必绘画初学者们常常会想的问题吧,不知道怎样才能画好人物的衣服,别着急,今日就在这儿讲一些关于如何绘画学生衣服校服的教程给我们!期望能够帮到你们! 轻便西装是不...

热爱画画的我
21分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部