1、近实时性
elasticsearch 是一个近实时(NRT-near real-time)的搜索平台,意味着能够快速的进行数据检索。
2、集群概念(Cluster)
在一个elasticsearch集群中,可以是一个或者多个节点,默认集群名称是elasticsearch
,同一个网络下集群名字必须唯一,因为集群名字可以作为节点加入集群的方式。集群的分环境方式可以通过设置不同的集群名称,例如:
- logging-dev
- logging-test
- logging-prod
取名字尽量表达其意。
3、节点(Node)
节点是集群的组成部分,默认Node的名称是随机生成的唯一UUID,如果你不想使用默认值,可以设置任何你所需要的名称。节点可以配置集群名称配置用以加入你想要加入的集群。
一个集群中可以拥有任意多数量的节点,意味着它可以无限横向扩展。
4、索引(index)
索引是具有某种相似特征的文档的集合,索引由名称(必须全部小写)标识,该名称用于对其中的文档执行索引、搜索、更新和删除操作时引用索引。
5、文档类型(Type)
在6.x版本之前一个索引下面可以定义多个type用来区分不同数据结构,但是在6.x之后一个index只能对应一个type,并且官方决定在未来某个版本将移除type的概念。
6、文档(Document)
可以显示的理解为 index下面的一条数据就是一个document,它是由json表示的一个数据。
7、分片和副本
分片的概念比较好理解,我将一个大的index拆分成多个分区,与mysql的分区表类似,但是它可以分配资源进行多个分片的检索之后聚合结果,带来很大性能上的提升,例如我由1亿数据量我拆分到10台机器去检索,每台机器负责1千万的数据检索自然就更快了。而副本的作用就是备份index,当主数据出现问题的时候可以使用副本数据。