Cluster:集群,由一个或多个Elasticsearch 节点组成。
Node:节点,组成Elasticsearch 集群的服务单元,同一个集群内节点的名字不能重复。通常在一个节点上分配一个或者多个分片。
Shards:分片,当索引上的数据量太大的时候,我们通常会将一个索引上的数据水平拆分,拆分出来的每个数据块叫作一个分片。在一个多分片的索引中写入数据时,通过路由来确定具体写入那一个分片中,所以在创建索引时需要指定分片的数量,并且分片的数量一旦确定就不能更改。分片后的索引带来了规模上(数据水平切分)和性能上(并行执行)的提升。每个分片都是 Lucene 中的一个索引文件,每个分片必须有一个主分片和零到多个副本分片。
Replicas:备份也叫作副本,是指对上分片的备份。主分片和备份分片都可以对外提供查询服务,写操作时先在主分片上完成,然后分发到备份上。当主分片不可用时,会在备份的分片中选举出一个作为主分片,所以备份不仅可以现升系统的高可用性,还可以提升搜索时的并发性能。但是若副本太多的话,在写操作时会增加数据同步的负担。
index:索引,由一个和多个分片组成,通过索引的名字在集群内进行唯一标识。
Type:类别,指索引内部的逻辑分区,通过 Type 的名字在索引内进行唯一标识。在查询时如果没有该值,则表示在整个索引中查询。
Document:文档,索引中的每一条数据叫作一个文档,类似于关系型数据中的一条数据,通过_id在Type内进行唯一标识。
Settings:对集群中索引的定义,比如一个索引默认的分片数、副本数等信息。
Mapping:类似于关系型数据库中的表结构信息,用于定义索引中字段(Field)的存猪类型、分词方式、是否存储等信息。Elasticseareh中的mapping 是可以动态识别的,如果没有特殊需求,则不需要手动创建 mapping,因为 Elasticsearch 会自动根据数据格式识别它的类型,但是当需要对某些字段添加特殊属性(比如:定义使用其他分词器、是否分词、是否存储等)时,就需要手动设置 mapping 了。一个索引的mapping一旦创建,若已经存储了数据,就不可修改了。
Analyzer:字段的分词方式的定义。一个analyzer通常由一个tokenizer、零到多个Filter组成。比如默认的标准Analyzer 包含一个标准的tokenizer 和三个filter:Standard Token Filter、Lower Case Token Filter、 Stop Token Filter。
领取专属 10元无门槛券
私享最新 技术干货