Hwang's Blog

学习 Elasticsearch ! EP01

2021-03-18 · 4 min read
elasticsearch

macOS 上安装

使用 Homebrew 进行安装,当然可以先安装好 Java 环境;

brew install elasticsearch

安装目录在:

/usr/local/Cellar/elasticsearch-full

启动:

elasticsearch

即可启动。

安装完本体,还可以安装一个配套管理工具:

brew install kibana

安装完成后直接执行kibana命令启动 Kibana,浏览器中通过:http://localhost:5601 即可访问。

Elasticsearch 的核心概念

  • Node: 节点;集群中每个运行中的 es服务器称之为节点;
  • Cluster:集群,由具有相同的一个或多个 es 节点组成的,各个节点协同工作,共享数据。同一个集群内节点的名字不能重复,但集群名称一定要相同。
    1. 一般启动新集群时,会用一个名称代替默认的 cluster.name,避免其自动加入到局域网内的其他集群中。
    2. 集群状态如下
      • green:表示所有节点正常运行
      • yellow:表示预警,所有主分片正常,至少有一个副本不正常;
      • red:集群无法正常,至少一个分片的主分片及它的全部副本分片都不可正常工作。依然可以查询(正常的分片还是工作的),但是只能查询部分数据(正常分片中的数据)!
  • Shards: 分片。当索引数据量太大时,受限于单个节点的内存、磁盘处理能力等,节点无足够快的响应客户端请求,此时需要将一个索引上的数据进行水平拆分,拆分出来数据称为分片。
    1. 通常,每个分片都会放到不同的服务器上。
      1. 创建索引时需要制定分片数量,并且分片数量一旦确定就不能更改;
      2. 默认一个索引创建5个主分片,并且分别为每个主分片创建一个副本
  • Replicas:备份或是副本。指对主分片的备份;
    1. 备份能提高系统的高可用性
      1. 提高检索的并非性能:(可以理解为当主分片查询繁忙时,可以直接从副本中查询)
      2. 过多会增加系统的同步负担
  • Index:索引。索引由一个和多个分片组成,在使用中需要通过索引名称来作为集群中的唯一标识;
  • Type:类别。指索引内部的逻辑分区。通过type的名字,在索引內进行唯一标识。在查询时 ,如果没有该值吗,则表示需要在整个索引中查询(似乎是tag的意思?)
  • Document:文档。索引中的每一条数据叫做文档,与通过_idType 内进行唯一标识;
  • Settings:指集群内索引的定义信息,比如索引默认的分片数、副本数等。
  • Mapping:保存定义索引字段的存储类型、分词方式、是否存储等信息。类似 MySQL的表结构信息;
    1. 一般是动态识别的,不需要手动创建。
      1. 一个索引的 Mapping 一旦创建,若已经存储量数据,就不可以修改了。
  • Analyzer:表示字段分词方式的定义。一个 analyzer通常由 一个Tokenizer 和0到多个 Filter 组成。

附录:与关系型数据库的对应

ES 关系型数据库
索引 Indices 库database
类型 Types 表 Table
文档 Documents 行 Rows
字段 Fields 列 Columns
映射 Mapping Schema
Put/Post/delete/update/Get 增删改查

生而为人,应该能够换尿布、策划入侵、杀猪、开船、造房子、 写十四行诗、算账、建墙、正骨、抚慰临终之人、接受命令、 下达命令、合作、独行、解决方程式、分析新问题、 清理马粪、编程、烹饪美食、高效战斗、英勇牺牲。 专业分工是给昆虫准备的。



Powered by Gridea

...