Elastic Search基础概念

主要概念:

1. 节点和集群

Elasticsearch可以作为一个独立的单个搜索服务器。不过,为了能够处理大型数据集,实现
容错和高可用性,Elasticsearch可以运行在许多互相合作的服务器上。这些服务器称为集群
(cluster),形成集群的每个服务器称为节点(node)。

2. 分片

当有大量的文档时,由于内存的限制、硬盘能力、处理能力不足、无法足够快地响应客户端
请求等,一个节点可能不够。在这种情况下,数据可以分为较小的称为分片(shard)的部分(其
中每个分片都是一个独立的Apache Lucene索引)。每个分片可以放在不同的服务器上,因此,数
据可以在集群的节点中传播。当你查询的索引分布在多个分片上时,Elasticsearch会把查询发送
给每个相关的分片,并将结果合并在一起,而应用程序并不知道分片的存在。此外,多个分片可
以加快索引。

3. 副本

为了提高查询吞吐量或实现高可用性,可以使用分片副本。副本(replica)只是一个分片的
精确复制,每个分片可以有零个或多个副本。换句话说,Elasticsearch可以有许多相同的分片,
其中之一被自动选择去更改索引操作。这种特殊的分片称为主分片(primary shard),其余称为副
本分片(replica shard)。在主分片丢失时,例如该分片数据所在服务器不可用,集群将副本提升
为新的主分片。

4. 时光之门

Elasticsearch处理许多节点。集群的状态由时光之门控制。默认情况下,每个节点都在本地
存储这些信息,并且在节点中同步。

数据结构定义:

1. 索引

索引(index)是Elasticsearch对逻辑数据的逻辑存储,所以它可以分为更小的部分。你可以把
索引看成关系型数据库的表。然而,索引的结构是为快速有效的全文索引准备的,特别是它不存
储原始值。如果你知道MongoDB,可以把Elasticsearch的索引看成MongoDB里的一个集合。如果
你熟悉CouchDB,可以把索引看成CouchDB数据库索引。Elasticsearch可以把索引存放在一台机器
或者分散在多台服务器上,每个索引有一或多个分片(shard),每个分片可以有多个副本(replica)。

2. 文档

存储在Elasticsearch中的主要实体叫文档(document)。用关系型数据库来类比的话,一个文
档相当于数据库表中的一行记录。当比较Elasticsearch中的文档和MongoDB中的文档,你会发现
两者都可以有不同的结构,但Elasticsearch的文档中,相同字段必须有相同类型。这意味着,所
有包含title字段的文档,title字段类型都必须一样,比如string。
文档由多个字段组成,每个字段可能多次出现在一个文档里,这样的字段叫多值字段
(multivalued)。每个字段有类型,如文本、数值、日期等。字段类型也可以是复杂类型,一个字
段包含其他子文档或者数组。字段类型在Elasticsearch中很重要,因为它给出了各种操作(如分
析或排序)如何被执行的信息。幸好,这可以自动确定,然而,我们仍然建议使用映射。与关系
型数据库不同,文档不需要有固定的结构,每个文档可以有不同的字段,此外,在程序开发期间,
不必确定有哪些字段。当然,可以用模式强行规定文档结构。从客户端的角度看,文档是一个JSON
对象(关于JSON格式的更多内容,参见http://en.wikipedia.org/wiki/JSON)。每个文档存储在一个
索引中并有一个Elasticsearch自动生成的唯一标识符和文档类型。文档需要有对应文档类型的唯
一标识符,这意味着在一个索引中,两个不同类型的文档可以有相同的唯一标识符。

3. 文档类型

在Elasticsearch中,一个索引对象可以存储很多不同用途的对象。例如,一个博客应用程序
可以保存文章和评论。文档类型让我们轻易地区分单个索引中的不同对象。每个文档可以有不同
的结构,但在实际部署中,将文件按类型区分对数据操作有很大帮助。当然,需要记住一个限制,
不同的文档类型不能为相同的属性设置不同的类型。例如,在同一索引中的所有文档类型中,一
个叫title的字段必须具有相同的类型。

4. 映射

在有关全文搜索基础知识部分,我们提到了分析的过程:为建索引和搜索准备输入文本。文
档中的每个字段都必须根据不同类型做相应的分析。举例来说,对数值字段和从网页抓取的文本
字段有不同的分析,比如前者的数字不应该按字母顺序排序,后者的第一步是忽略HTML标签,
因为它们是无用的信息噪音。Elasticsearch在映射中存储有关字段的信息。每一个文档类型都有
自己的映射,即使我们没有明确定义。

posted @ 2020-04-16 17:11  爆炸峰  阅读(588)  评论(0编辑  收藏  举报
Document