ES权威指南[官方文档学习笔记]-27 Data in, data out

原创
2014/05/13 14:47
阅读数 213

es:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/data-in-data-out.html

下一页:http://my.oschina.net/qiangzigege/blog/264232

内容:

不论我们写什么项目,目的是一样的,根据目的来组织数据,但是数据不是仅仅包含随机的位和字节,
我们在数据元素间建立关系来表示现实世界里的实体,名字和邮箱有意义,前提是我们知道它们属于同一个人。

在现实世界里,不是同一类型的所有实体都看起来一样,一个人可能有宅话号码,
另一个人可能有移动电话,另一个可能2个都有,一个人可能有3个邮箱地址,另外一个可能一个都没有,等等。

面向对象编程语言的其中一个理由是:对象帮助我们表示和处理真实世界的实体,这些实体有复杂的数据结构,目前为止一切都运行良好。

当我们需要存储这些实体时,问题来了,之前,把数据存在关系型数据库里,使用一张表格,不具有弹性。
但是如果我们可以存储对象作为对象?

一个对象是一个特定语言,内存里的数据结构,发送,存储,我们需要用一些传统的方式表示它,
JSON是一种方式,它已经成为NOSQL世界里事实意义上的标准来交换数据。

ES是一个分布式的文档存储,它可以存储和检索复杂的数据结构,这些结构序列化为JSON文档。换句话来说,
一旦文档被存储在es里,可以从集群里的任意一个文档里检索出来。

当然,我们不是仅仅需要存储数据,还要搜索,快速,当很多nosql解决方案可以让我们存储对象作为文档,
它们仍然要求我们来思考我们怎样来查询数据,并且每个域要求一个索引来让数据检索更快。

在es里,所有的数据的每个域默认都被建立索引,也就是说,每个字段,有一个专门的倒排索引,用来快速检索,
并且,不像大多数数据库,es可以使用所有这些倒排索引,并且快速返回结果。

本章,我们讨论API来创建,查询,更新和删除文档等等。

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部