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 协议》,转载必须注明作者和本文链接
推荐文章: