elasticsearch 中的基本概念和基本的工作流程

Elasticsearch

  • 解决了分布式(搜索、索引),高性能(近实时),高可用(海量数据,堆机器)的检索服务,可以服务数百台机器处理大数据
一次简单的搜索流程
  • 索引-> 分析 -> 检索
    • 索引 : 将收集到的数据建立倒排索引并存储
    • 分析 : 将用户输入的 keyword 分解为索引服务可识别的词缀
    • 检索 : 将对应 token 与索引库中的倒排索引进行对比,并返回检索结果。
es 数据分布式
  • 数据的存储访问在多个节点(node)的多个分片(shard)上。es 自动将分片数据分布在es集群不同的节点上,以实现数据的分布(同分片的主从分片不能在同节点上,防止节点故障数据丢失)
es基本概念
  • Inverted Index,相当于MySQL中的database, document集合,index数据可以分为多个 shard 分片

  • node ,一个 es实例就是一个node, 1个node不等同于1台服务器。一个node下拥有多个 index

  • shard

    • 相当于一个索引的数据用多个杯子(shard)来装, 这样可以将数据分布在多个node上,完成数据的分布式部署,每个分片都是一个 lucene index(全文搜索引擎)的实例
    • primary shard : 相当于主库,可读可写
    • replica shard : 数据备份,相当于从库读,提高读吞吐量。当主分片失效时,同坐自动的election, replica可以成为 primary
  • index-mysql_database; type-mysql_table; document-mysql_row; field-mysql_field

节点的分布与一致性
  • 数据通过切片分布在多个节点上,在 es 中每个节点都可以完成用户的检索请求,安装不同的服务功能划分为3类职责:master/data/client

    • masterNode 创建/删除/分配切片
    • dataNode 数据查询/数据写入
    • clientNode 纯转发
    • clientNode 可以增加集群的访问吞吐量,但是 masterNode 掌握了集群中其它节点的数据元信息(及分片的分布情况)
  • es 通过 discovery 模块来完成新加入节点的发现和已有的节点宕机发现,新节点加入前已通过配置确认新节点的身份。宕机节点通过集群中其它节点的 unicast 机制来发现节点宕机情况,并自动剔除集权
    同时 es 集群通过自动选举解决了集群首脑masterNode 宕机时服务不可用的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值