(8) Elasticsearch 中的文档与文档元数据的概念

什么是文档

通常,我们可以认为对象(Object)和文档是相通的。不过,他们还是有所差别:对象是一个Json结构体——类似于哈希、hashmap、字典或者关联数;对象中还可能包含着其他对象。在 es 中,文档这个术语有着特殊含义。它指的是顶层结构或者根对象(root object)序列化成的json数据(以唯一ID标识并存储在es中)

文档元数据

一个文档不只有数据。它还包含了 元数据(metadata)—— 关于文档的信息。三个必须的元数据节点是:

节点说明
_index文档存储的地方
_type文档代表的对象的类
_id文档的唯一标识
_index

索引(index)类似于关系型数据库里面的“数据库”,是我们存储和索引关联数据的地方。虽然事实上,我们的数据被存储和索引在分片上,索引只是一个把一个或者多个分片组在一起的逻辑空间。然而,这只是一些内部细节——我们的程序完全不关心分片。对于我们的程序而言,文档存储在索引(index)中,剩下的细节有 es 关心即可。

_type

在应用中,我们使用对象表示一些“事物”,例如说一个用户,一个评论,或者是一封邮件。每个对象都属于一个类(class),这个类定义了属性与对象关联的数据。user类的对象可能包含姓名、性别、年龄和Email地址。

在关系型的数据库中,我们经常将相同类的对象存储在一个表里面,因为他们有着相同的结构。同理,在 es 中,我们使用相同类型(type)的文档表示相同的事物,因为他们的数据结构也是相同的。

每个类型都有自己的映射(mapping)或者是结构定义,就像传统数据库表中的列一样。所有类型下的文档被存储在同一个索引下,但是类型的映射(mapping)会告诉 es 不同的文档如何被索引。
_type 的名字是可以大写或者是小写,不能包含下划线或者逗号。

_id

id 仅仅是一个字符串,它与 _index 和 _type 组合时,就可以在 es 中唯一标识一个文档。当创建一个文档,你可以自定义 _id ,也可以让 es 帮你生成。

其他元数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值