写点什么

初步解析 Elasticsearch Document 核心元数据

用户头像
escray
关注
发布于: 2021 年 01 月 20 日
初步解析 Elasticsearch Document 核心元数据

文字内容整理自 B 站中华石杉的 Elasticsearch 顶尖高手系列课程核心知识篇


Talk is cheap, Show me code.


作为技术类的文章,上来先看代码。


在 Kibana 的 Dev Tools Console 中,查询一条数据:


GET /test_index/test_type/1
{ "_index": "test_index", "_type": "test_type", "_id": "1", "_version": 1, "found": true, "_source": { "test_content": "test test" }}
复制代码


然后再放一段官方文档:


Each document has metadata associated with it, such as the _index, mapping _type, and _id metadata fields. The behavior of some of these metadata fields can be customized when a mapping type is created.



_index 元数据


代表一个 document 存放在哪个 index 中


类似的数据放在一个索引,非类似的数据放不同索引:


  • product index(包含了所有的商品)

  • sales index(包含了所有的商品销售数据)

  • inventory index(包含了所有库存相关的数据)


如果你把比如 product,sales,human resource(employee),全都放在一个大的 index 里面,比如说 company index,不合适的。


index 中包含了很多类似的 document:类似是什么意思,其实指的就是说,这些 document 的 fields 很大一部分是相同的,你说你放了 3 个 document,每个 document 的 fields 都完全不一样,这就不是类似了,就不太适合放到一个 index 里面去了。


索引名称必须是小写的,不能用下划线开头,不能包含逗号:product,website,blog

_type 元数据


代表 document 属于 index 中的哪个类别(type)


一个索引通常会划分为多个 type,逻辑上对 index 中有些许不同的几类数据进行分类:因为一批相同的数据,可能有很多相同的 fields,但是还是可能会有一些轻微的不同,可能会有少数 fields 是不一样的,举个例子,就比如说,商品,可能划分为电子商品,生鲜商品,日化商品,等等。


type 名称可以是大写或者小写,但是同时不能用下划线开头,不能包含逗号

_id 元数据


代表 document 的唯一标识,与 index 和 type 一起,可以唯一标识和定位一个 document


我们可以手动指定 document 的 id(put /index/type/id),也可以不指定,由 es 自动为我们创建一个 id


以下来自官方文档,中文翻译是我自己的理解

Metadata fields

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-fields.html


Each document has metadata associated with it, such as the _index, mapping _type, and _id metadata fields. The behavior of some of these metadata fields can be customized when a mapping type is created.


Identity metadata fields


  • _index

The index to which the document belongs.

代表一个 document 存放在哪个 index 中


  • _type

The document’s mapping type.

代表 document 属于 index 中的哪个类别


  • _id

The document’s ID.

document 的唯一标识

Document source metadata fields


  • _source

The original JSON representing the body of the document.

表达一个 document 的主体(body)的原始 JSON 串


  • _size

The size of the _source field in bytes, provided by the mapper-size plugin.

_source 元数据的大小

Indexing metadata fields


  • _field_names

All fields in the document which contain non-null values.

文档(document)中具有非空值的全部字段名称


  • _ignored

All fields in the document that have been ignored at index time because of ignore_malformed.

在索引时因为 ignore_malformed 可以被忽略的文档字段

Routing metadata field


  • _routing

A custom routing value which routes a document to a particular shard.

可以将文档存储在指定 shard 的自定义路由


Other metadata field


  • _meta

Application specific metadata.

应用特定元数据


发布于: 2021 年 01 月 20 日阅读数: 336
用户头像

escray

关注

Let's Go 2017.11.19 加入

在学 Elasticsearch 的项目经理

评论

发布
暂无评论
初步解析 Elasticsearch Document 核心元数据