【ElasticSearch】入门-基础概念

什么是ES?

是一个高可用分布式的搜索引擎。可以用于实时存储、检索数据。
底层是使用Lucene全文检索框架。

基本概念

  • 存储结构:由_index _type和 _id标识唯一的一个文档
    • _index:指向一个或多个物理分片的逻辑命名空间
    • _type:用于区分同一个集合中的不同的细分(ES6.X中只允许一个index下创建一个type,7.X中会删除type这个概念)
    • _id:文档唯一标识,由系统生成或者使用者提供
  • Near Realtime(NRT近实时):是指新增到ES的数据在1秒后就可以被检索到。以及其检索和分析响应速度可以达到秒级别。
  • Cluster(集群):包含多个节点。
    • Green:所有主分片和副分片都正常运行
    • Yellow:所有主分片运行正常,但是不是所有副分片都运行正常。
    • Red:有主分片没能正常运行
  • Node(节点)
    • 主节点:负责集群层面相关操作,管理集群变更;集群中有且仅有一个。
      • 为了防止多主产生脑裂,es根据discovery.zen.minimum_master_nodes参数防止脑裂。一般配置为N/2+1,N为集群中候选主节点个数。
      • 由多个候选主节点选举一个主节点。
      • 候选主节点配置参数 node.master:true
    • 数据节点:负责保存数据、执行数据相关操作
    • 节点名称:默认随机分配,如果启动多个节点构成集群,则需要将节点名称改成相同的集群名称。
  • Index(索引):指向一个或多个物理分片的逻辑命名空间。
    • 一个索引可以有多个分片。
    • 多个主分片:主分片之间数据不一样,所有主分片的并集是当前索引的所有数据。
    • 多个副分片:
      • 同一个主分片的多个副分片的数据同一时间段不一定完全相同,但是最终是完全相同的。因为副本数据同步速率可能不一致,主分片在接收到一定程度副分片返回成功后就认为数据保存成功。
      • 不同主分片的副分片数据不相同。
    • 一个节点有多个索引分片
    • 单节点的情况下,所有分片都在同一个节点,多节点情况下,为了保证数据可靠性,会将主/副分片分配到不同的节点中。
  • Shard(分片)
    • 分布式系统中,单机无法存储规模巨大的数据,要依靠大规模集群处理和存储这些数据。因此需要将数据分成若干小块分配到各个机器上。
    • 除了将数据分片,提高水平扩展能力;还通过将数据复制到多个副本,放置不同机器增加可用性,同时多个数据副本还能提高读操作的并发度。
posted @   此木|西贝  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示