ElasticSearch系列之二:基本概念介绍

本篇介绍一些ES基本且重要的概念,这些概念是ES的核心

基本概念

  1. 集群(Cluster)

    一个集群由一个或者多个节点组成。它给我们提供索引和搜索的功能。每个集群是由集群名来区分的,所以集群名字很重要。ES的默认集群名为elasticsearch。一个集群中的节点就会通过这个名字来加入集群。 在测试环境中可以不修改集群名称,但是强烈建议生产环境下修改集群名。

  2. 节点(Node) 一个节点是一个集群中的组成部分,它储存你的数据然后参与提供索引和搜索的功能。它可以是单独的一台服务器也可以是同一台服务器(ES可以在一台服务器上启动多个节点实例)。 一个节点通过配置集群名称来自动搜索集群并加入。默认情况下都会自动加入“elasticsearch”这个集群,毕竟默认的集群名就是“elasticsearch”。自动加入集群还需要开启需要加入节点的自动嗅探功能。当然启动一个节点也是可以的。

  3. 索引(Index) 索引就是拥有相似特征文档的集合,就相当于传统的关系型数据库中的数据库(database)概念。例如一个用户的索引,一个产品的索引等等。一个索引有一个名字(必须全小写),对文档增删改查的时候都需要使用这个索引,一个集群中你可以创建N+1个索引。

  4. 类型(Type) 一个索引中可以定义一个或者多个类型。一个类型是你索引上的逻辑分类,相当于传统关系型数据库中的表(table)。不同的 Type 应该有相似的结构(schema),举例来说, id 字段不能在这个组是字符串,在另一个组是数值。这是与关系型数据库的表的 一个区别 。性质完全不同的数据(比如 products 和 logs )应该存成两个 Index,而不是一个 Index 里面的两个 Type。 根据 规划 ,Elastic 6.x 版只允许每个 Index 包含一个 Type,7.x 版将会彻底移除 Type。

  5. 文档(Document)

一个文档是一个可以被索引的基础信息单元。一般对象会包含复杂数据结构,日期、地理位置、方位等信息,传统的关系型数据库不得不把有关系的信息拆分为行列存储,然后查询出来后进行重组。可是ES不需要这样,ES是面向文档(document oriented)的,这意味着你可以存储整个对象或者文档(document),不仅可以存储还会为每个文档建立索引以方便搜索。同时你也可以对文档进行排序、过滤、搜索等操作。

  1. 分片和复制片(shards and replicas)

    一个索引存储本身没有数量,大小限制但是一台单机的存储是有限的而且极大的数据处理也会比较缓慢。为了解决这个问题ES提供了将索引划分成多片的能力,这些片就叫分片(这也是ES天生支持分布式的原因)。

    在你创建索引的时候可以指定分片数量。每个分片都是一个单独的个体,可以独自放在集群的任何节点上工作。

    分片有这样的优点:

    • 允许你水平分割/扩展你的内容容量
    • 允许你在分片上进行分布式、并行的操作,提高性能和吞吐量。

    分片如何分布和分布查询都由ES管理,用户无需关心。

    在一个网络/云的环境里,失败随时都可能发生。在某个分片/节点因为某些原因处于离线状态或者消失的情况下,故障转移机制是非常有用且强烈推荐的。为此, ES允许你创建分片的一份或多份拷贝,这些拷贝叫做复制分片,或者直接叫复制。

    复制片会和主分片不在一个节点,这样保证主节点/复制片节点故障时候还要一个节点可以正常工作。

下一节会讲一下ES的安装,索引,类型,文档创建,查询,删除等知识

转载于:https://my.oschina.net/u/1584624/blog/1525475

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值