From 9243d407d0debf3f7f94ab14b19c1f150e8d74e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E9=92=8A?= Date: Wed, 19 Apr 2023 09:13:14 +0000 Subject: [PATCH] =?UTF-8?q?Update=2001.ES=E7=AE=80=E4=BB=8B.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/01.ES简介.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/01.ES简介.md b/docs/01.ES简介.md index 5c1f84e..7638071 100644 --- a/docs/01.ES简介.md +++ b/docs/01.ES简介.md @@ -16,14 +16,18 @@ Elasticsearch 处于最核心的位置,它可以帮我们对数据进行快速 ## 文档(Document) -Elasticsearch是面向文档的,文档是所有可搜索数据的最小单位。 + + +Elasticsearch是面向文档的,文档是所有可搜索数据的最小单位。如果用关系型数据库类比的话,文档就好像是数据库中的一行记录。 + +Elasticsearch的文档是以JSON进行序列化并保存的,每个JSON对象由一个或多个字段组成,字段类型可以是布尔,数值,字符串、二进制、日期等数据类型。 - 日志文件中的日志项 - 一本电影的具体信息/—张唱片的详细信息 - MP3播放器里的一首歌/ 一篇PDF文档中的具体内容 - 文档会被序列化成JSON格式,保存在Elasticsearch中,JSON对象由字段组成。每个字段都有对应的字段类型(字符串/数值/布尔/日期/二进制/范围类型)。 -- 结构灵活。你的文档不依赖于预定义的架构。例如,并非所有事件都需要描述值,因此可以完全省略该字段。但它可能需要新的字段,例如位置的纬度和经度。 +- 结构灵活。你的文档不依赖于预定义的架构。例如: 并非所有事件都需要描述值,因此可以完全省略该字段。但它可能需要新的字段,例如位置的纬度和经度。 - 它可以是分层的。可以将其视为文档中的文档。字段的值可以很简单,就像位置字段的值可以是字符串一样。它还可以包含其他字段和值。例如,位置字段可能包含城市和街道地址。 - 每个文档都有一个Unique ID,你可以自己指定ID,或者通过Elasticsearch自动生成。 @@ -79,6 +83,15 @@ Elasticsearch 具有 schema-less 的能力,这意味着无需显式指定如 传统的RDBMS, 在插入数据之前需要定义表结构,各个字段的类型及长度等。当我们在ES中建立一个索引的第一个文档时,如果你没有创建它的 schema,那么 Elasticsearch 会根据所输入字段的数据进行猜测它的数据类型,比如上面的 user 被被认为是 text 类型,而 uid 将被猜测为整数类型。这种方式我们称之为 schema on write,也即当我们写入第一个文档时,Elasticsearch 会自动帮我们创建相应的 schema。在 Elasticsearch 的术语中,mapping 被称作为 Elasticsearch 的数据 schema。一旦一个索引的某个字段的类型被确定下来之后,那么后续导入的文档的这个字段的类型必须是和之前的是一致,否则写入将导致错误。schema on write 可能在某些时候不是我们想要的,那么在这种情况下,我们可以事先创建一个索引的 schema。你将在后面的文章中看到。在最新的 Elasticsearch 设计中,也出现了一种叫做 schema on read 的设计。 + +# 索引 + +在ES中,索引是ES组织文档的方式,是拥有相结构文档的集合,可以把ES的索引类比为关系型数据库的一张数据表。一个表可以存放多行数据。 + + + + + # ES集群