Elasticsearch简介
1.Elasticsearch 是分布式文档搜索引擎。它可以快速地储存、搜索和分析海量数据。它本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个Elasticsearch 实例。单个 Elasticsearch 实例称为一个节点(node),一组节点构成一个集群(cluster)。
2.Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。
3.Elasticserarch中的文档不仅仅包含了数据,还包含了文档元数据,元数据中有文档的相关信息。元数据包括:
- _index:文档存储的地方
- _type:文档代表的对象类型
- _id:文档的唯一标识
Index
Elasticsearch中的Index(索引)是 Elasticsearch 数据管理的顶层单位。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是全部小写,不能以下划线开头,不能包含逗号。
Document
Index 里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index。Document实际上就是JSON串。例如:
{
"name": "Tom",
"age": "21"
}
同一个 Index 里面的 Document,不要求有相同的结构(scheme),但是最好保持相同。
Type
类型(Type)简单理解就是对不同Document的分类,Type的名字可以是大写或小写,不能包含下划线或逗号;
总之,在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中,我们可以画一些简单的对比图来类比传统关系型数据库:
MySQL -------> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Index -> Types -> Documents -> Fields
在Elasticsearch集群可以包含多个索引(index)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型包含多个文档(documents)(行),然后每个文档包含多个字段(Fields)(列);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。