目录
一、什么是Elasticsearch?
二、核心概念
1.倒排索引(Inverted Index)
2.节点 & 集群(Node & Cluster)
3.索引(Index)
4.文档(Document)
5.类型(type)
6.文档元数据(Document matadata)
7.字段(Fields)
一、什么是Elasticsearch?
Elasticsearch是一个开源的分布式、RESTful 风格的搜索和数据分析引擎,它的底层是开源库Apache Lucene。
- 一个分布式的实时文档存储,每个字段可以被索引与搜索;
- 一个分布式实时分析搜索引擎;
- 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
二、核心概念
1.倒排索引(Inverted Index)
由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index);
2.节点 & 集群(Node & Cluster)
Elasticsearch 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个Elasticsearch实例。单个Elasticsearch实例称为一个节点(Node),一组节点构成一个集群(Cluster);
3.索引(Index)
Elasticsearch 数据管理的顶层单位叫做index(索引),相当于关系型数据库里的数据库的概念;每个index的名字必须小写;
4.文档(Document)
inde里面单条记录称为document(文档),多个document构成一个index,document使用JSON格式表示;
5.类型(type)
document可以分组,比如employee这个index里面,可以按部门、年龄进行分组,这种分组叫做type,它是虚拟的逻辑分组,用来过滤document,类似关系数据库的数据表;
6.文档元数据(Document matadata)
文档元数据为_index, _type, _id, 这三者可以唯一表示一个文档,_index表示文档在哪存放,_type表示文档的对象类别,_id为文档的唯一标识。
7.字段(Fields)
每个Document都类似一个JSON结构,它包含了许多字段,每个字段都有其对应的值,多个字段组成了一个 Document,可以类比关系型数据库数据表中的字段。