1、Node与Cluster
Elastic本质是一个分布式数据库,允许多态服务器协同工作,每台服务器可以运行多个Elastic实例。
单个Elastic实例成为一个节点(Node),一组节点构成一个集群(cluster).
2、Index
Elastic会索引所有字段,经过处理后写入一个反向索引(Inverted Index).查找数据的时候,值机额查找该索引。
所以,Elastic数据管理的顶层单位叫做Index(索引)。他是单个数据库的同义词。
每个Index(即数据库) 的名字必须是小写。
下面命令可以查看当前节点的所有Index.
curl -X GET 'http://localhost:9200/_cat/indices?v'
3、Document
Index 里面单条的记录成为Document。许多条Document构成一个Index。
Document使用JSON格式表示,下面是个例子。
{
“user”:"张三",
“title”:"工程师",
“desc”:"数据库管理"
}
同一个Index里面的Document不要求有相同的结构(scheme),但最好保持相同,这样有利于提高搜索效率
4、Type
Document可以分组,比如 weather 这个index里面,可以按城市分组(北京,上海),也可以按照气候分组(晴天,雨天)。
这种分组叫做Type.它是虚拟的逻辑分组,用来过滤Document.
不同的Type应该有相似的结构(schema),举例来说,id 这个字段不能在这个组是字符串,在另一个组是数值。性质完全不同的数据
(比如 products和logs)应该存成两个Index,而不是在一个Index里面的两个Type(虽然可以这样做)
{
"mappings":{
"person":{
{
"user": "张三",
"title": "工程师",
"desc": "数据库管理"
}
}
}