elasticsearch学习笔记一:核心概念
1. NRT(Near Realtime):近实时
两方面:
- 写入数据时,过一秒才会被搜索到,因为内部在分词,录入索引。(倒排索引)
- es搜索时:搜索和分析数据需要秒级出结果。
2.Cluster:集群
包含一个或多个启动着es实例的机器群。通常一台机器起一个es实例。同一网络下,集名一样的多个es实例自动组成集群,自动均衡分片等行为。默认集群名为“elasticsearch”
3.Node:节点
每一个es实例称为一个节点。节点名自动分配,也可以手动分配。
4.Document:文档
es中的最小数据单位。一个document就像数据库中的一条记录。通常以json格式显示。多个document存储于一个索引(Index)中。
book document
{
"book_id":"1",
"book_name":"java编程思想",
"book_desc":"java的基础从0到精通,从入门到放弃.......",
"category_id":"1",
"category_name":"java"
}
5.Index:索引
包含一堆有相似结构的文档规则。(把它理解成数据库中的表就可以了)
索引创建规则:
- 仅限小写字母
- 不能包含\ / ? “ < > | #以及空格等特殊符号
- 从7.0版本开始就不再包含冒号
- 不能以- _或+开头
- 不能超过255个字节(注意它是字节,因此多个字节符将计入255个限制)
6.Field:字段
就像数据库中的列(Columns),定义每个document应该有的字段。
7.Type:类型
每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的document,都有相同的field。
注意:6.0之前的版本有type(类型)概念,type相当于关系xing数据库中的表,ES官方将在ES9.0版本中彻底删除type。此学习文档type都为_doc。
8.shard:分片
index数据过大时,将index里的数据,分为多个shard,分布式存储在各个服务器上面。可以支持海量数据和高并发,提高性能和吞吐量,充分利用多台机器的cpu。
9.replica:副本
在分布式环境下,任何一台机器都有会有随时宕机的可能,如果宕机,index的一个分片没有,导致此index不能搜索。所以为了确保数据的安全,我们会将每个index的分片进行备份,存储在另外的机器上,保证少数机器宕机后es集群仍可以搜索。
能正常提供查询和插入的分片我们叫做主分片(primary shard),其余的我们管它叫做备份分片(replica shard)。
es6默认新建索引时,5个分片,1副本,也就是一主一备,共10个分片。所以es集群最小规模为两台。es7 1分片1副本,一共2分片。
核心概念:elasticsearch和数据库对比
关系型数据库(比如MYSQL) | 非关系型数据库(elasticsearch) |
---|---|
数据库Databas | 索引Index |
表Table | 索引Index(原为Type) |
数据行Row | 文档Document |
数据列Column | 字段Field |
约束Schema | 映射Mapping |
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: