elasticsearch相关的基本概念
第一部分 cluster、node、index、type、document、shards、replicas
- cluster
- 是一系列Node(server)的集合
- 可以跨服务器建立索引,支持跨服务器的检索
- elasticsearch中新建立一个cluster时,该cluster会被赋予一个默认的名称——“elasticsearch”
- node
- 一个node就是一个独立的server
- elasticsearch中新建一个node时,该node会被赋予一个默认的名称——该名称是随机产生的(a random Universally Unique IDentifier, UUID)
- 新建一个node时,如果没有显式指定它所从属的cluster,则该node会属于“”elasticsearch“”这个cluster
- index
- 一条索引请求发出后,检索得到的是一个document的集合,{document1,document2....}
- index必须是小写字母(that must be all lowercase)
- 一个具体的index是由若干个type组合而成的,即index={type1,type2,....}
- type
- 多个type字段组合成一种index方式
- 例如一个博客网站可以建立这样的index={userdata, blogdata, commentdata}
- 执行上述index之后,得到的检索结果是document的集合,result={document1, document2,...}
- document
- document是index执行后得到的结果集的基本组成单元
- 一个index执行之后得到的检索结果可以是多个document组成的集合
- document是用JSON字符串表示的,一个document就是一个JSON字符串(JavaScript Object Notation)
- shards
- 一个index可以被分成若干个碎片(shards),然后不同的shards可以在不同的node(server)上执行,
- 这样一来,发配一个index请求时,实际上该cluster的多个node(server)都在执行相应的查询/更改/删除操作,如此一来就提高了响应速度。
- replicas
- 执行索引的过程中,难免会遇到各种各样的错误,为了避免因这些错误而导致的“”“查询失败”,需要引入replicas
- 由于一个index会被分成多个shards,(primary shards)
- 所以elasticsearch会备份所有shards (replica shards)