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帮你自动生成。
发表回复