码迷,mamicode.com
首页 > 其他好文 > 详细

ES系列四、基本概念

时间:2018-08-02 02:06:49      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:分析   sch   不同   数据量   扩大   name   并行   硬件   一个用户   

一、基础概念

1、索引

索引(index)是elasticsearch的一个逻辑存储,可以理解为关系型数据库中的数据库,es可以把索引数据存放到一台服务器上,也可以sharding后存到多台服务器上,每个索引有一个或多个分片,每个分片可以有多个副本。

2、索引类型(index_type)

在es中,一个索引对象可以存储多个不同用途的对象,通过索引类型(index_type)可以区分单个索引中的不同对象,可以理解为关系型数据库中的。每个索引类型可以有不同的结构,但是不同的索引类型不能为相同的属性设置不同的类型。

3、文档(document)

存储在es中的主要实体叫文档(document),可以理解为关系型数据库中表的一行记录。每个文档由多个字段构成,es是一个非结构化的数据库,每个文档可以有不同的字段,并且有一个唯一的标识符

4、映射(mapping)

Mapping,就是对索引库中索引的字段名及其数据类型进行定义。

ES默认是动态创建索引和索引类型的mapping的。这就相当于无需定义Solr中的Schema,无需指定各个字段的索引规则就可以索引文件,很方便。但有时方便就代表着不灵活。比如,ES默认一个字段是要做分词的,但我们有时要搜索匹配整个字段却不行。如有统计工作要记录每个城市出现的次数。对于NAME字段,若记录“new york”文本,ES可能会把它拆分成“new”和“york”这两个词,分别计算这个两个单词的次数,而不是我们期望的“new york”。

这时,就需要我们在创建索引时定义mapping。此外,es支持多字段结构,例如:我们希望两个字段中有相同的值,一个用于搜索,一个用户排序;或者一个用于分词器分析,一个用于空白字符。

 

二、核心概念

  1. 分片

       一个分片本身就是一个完整的搜索引擎。文档存储在分片中,而分片则会被分配到集群中节点中,随着集群的扩大和缩小,es会自动地将分片在节点之间进行迁移,以保证集群能保持一种平衡。

       1.如果我们的索引数据量很大,超过硬件存放单个文件的限制,就会影响查询请求的速度。Es引入了分片技术;

       2.将一个完整的index分成若干部分存储在相同或不同的节点上。

       3. 每个分片都有自己搜索,更新,删除等和index一样全部功能的一小块。

       4.好处:水平分割和扩展我们存放的内容索引;分发和并行跨碎片操作提高性能/吞吐量;

       5.假设索引为firsttime,在elasticsearch-xx/data/elasticsearch/0/indices/firsttime下有5个分片,从0-4;

2. 副本:replica

  1.冗余备份,防止数据丢失;

  2.负载均衡

一个索引中含有主分片的数量,默认值为5,在索引创建后这个值是不能被更改的。

每一个主分片关联的副本分片的数量,默认值为1,这个设置在任何时候都可以修改。

对副本分片数量的修改:

   假设主分片为4,副本分片为2,则就有12条分片,其中4条主分片,8条副分片;

 

ES系列四、基本概念

标签:分析   sch   不同   数据量   扩大   name   并行   硬件   一个用户   

原文地址:https://www.cnblogs.com/wangzhuxing/p/9404587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!