Document

  • key
    • field (字段)
    • property (属性)
  • value
    • 字符串
    • 数字
    • 布尔
    • 地理对象
    • 。。。

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

Document metadata

文档必须包含的三个元数据节点: 节点 说明
_index 文档存储的地方
_type 文档代表的对象类
_id 文档的唯一标识
  • _index
    索引(index) 类似于关系型数据库里的“数据库”——它是我们存储和索引关联数据的地方。

    提示:
    事实上,我们的数据被存储和索引在分片(shards)中,索引只是一个把一个或多个分片分组在一起的逻辑空间。然而,这只是一些内部细节——我们的程序完全不用关心分片。对于我们的程序而言,文档存储在索引(index)中。剩下的细节由Elasticsearch关心既可。

    index名字必须是全部小写,不能以下划线开头,不能包含逗号。

  • _type
    每个类型(type)都有自己的映射(mapping)或者结构定义,就像传统数据库表中的列一样。所有类型下的文档被存储在同一个索引下,但是类型的映射(mapping)会告诉Elasticsearch不同的文档如何被索引。

    _type的名字可以是大写或小写,不能包含下划线或逗号。

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