Elasticsearch基础

  Elasticsearch是一个开源搜索服务器项目,是优秀的全文搜索和分析引擎。

1.数据架构的主要概念

  (1)索引

    索引(index)是Elasticsearch对逻辑数据的存储,所以它可以分为更小的部分。可以看作关系型数据的表。

    Elasticsearch可以把索引放在一台机器或分散在多台服务器上,每个索引有一个或多个分片(shard),每个分片可以有多个副本。

  (2)文档

    存储在Elasticsearch中的主要实体叫做文档(document)。可以看作关系型数据库的一行记录。

    文档由多个字段组成,每个字段可以多次出现在一个文档中,这样的字段叫做多值字段。每个字段是有类型,如文本,数值,日期等。字段也可以是复杂类型,一个字段包含其他子文档或数组。

    字段类型在Elasticsearch中很重要,因为它给出了各种操作(如分析或排序)如何被操作的信息。文档不需要固定的结构,每个文档可以有不同的字段。

  (3)文档类型

    在Elasticsearch中,一个索引对象可以存储多个不同用途的对象。如一个博客引用程序中可以保存文章和评论。

  (4)映射

    Elasticsearch在映射中存储有关字段的信息,如数值字段和从网页上抓取的文本字段需要有不同的分析。每个文档类型都有自己的映射,即使我们没有定义。

  从上面我们知道Elasticsearch把数据存储在一个或多个索引上,每个索引包含各种类型的文档。每个文档有很多字段,映射定义了Elasticsearch如何字段这些字段。

2.Elasticsearch主要概念

  (1)节点和集群

    Elasticsearch可以作为一个独立的单个搜索服务器,不过为了处理大型数据集,实现容错和高可用,Elasticsearch可以运行在多台服务器上,这些服务器组成集群,单台服务器成为节点。

  (2)分片

    在处理大量数据时,单个节点由于内存有限、磁盘有限,从而无法快速响应客户端请求,这种情况下,数据可以分为较小的部分(分片),每个分片在不同服务器上,最后把结果合并起来。

    分片能加快索引。

  (3)副本

    副本只是一个分片的精确复制,每个分片可以有零个或多个副本。也就是说Elasticsearch可以有多个相同的分片,其中之一被选择去更改索引操作,这个分片称为主分片,其余是副分片,当主分片丢失时,集群会把副本提升为主分片。

posted @ 2017-12-04 14:33  星星满天  阅读(283)  评论(0编辑  收藏  举报