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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!