zoukankan      html  css  js  c++  java
  • 基本概念

    基本概念:
    
    有几个概念 是Elasticsearch的核心,了解哪些内容从一开始会极大的帮助你简化学习过程:
    
    Near Realtime(NRT):
    
    Elasticsearch  是一个近乎实时搜索的平台,这意味着有一个轻微的延迟(通常是1秒)从你索引一个文档
    
    直到它变的可检索。
    
    Cluster:
    
    一个集群是一个或者多个节点的集合,共同持有你整个数据和提供联合索引和搜索功能跨越所有的节点。
    
    一个集群是由一个唯一的名称默认是elasticsearch
    
    这个名字是重要的因为一个节点只能是一个集群的一部分,
    
    如果节点是是创建通过这个名字加入集群。
    
    
    确保 你不重用相当的集群名字在不同的环境,
    
    否则你可能最终会让节点加入到错误的集群。
    
    比如 你可以使用 logging-dev, logging-stage, and logging-prod  对于开发,
    
    工作台和生产环境。
    
    
    节点:
    
    一个节点是一个简单的server, 是你集群的一部分,存储你的数据,参与集群的索引和搜索能力。
    
    就像一个集群, 一个节点是通过一个名字定义 默认是一个随机的UUID
    
    一个节点可以配置加入到一个特定的集群通过集群名字。
    
    这意味着你启动一些节点在你的网络上假设你可以互相发现。
    
    他们会自动形成和产生一个单独的集群名字elasticsearch
    
    在一个单独的集群, 你可以有很多你需要的节点。此外,
    
    如果没有其他 Elasticsearch nodes 当前运行在你的网络,
    
    启动一个单独的节点默认形成一个新的单个节点cluster命名为elasticsearch
    
    Index:
    
    一个索引是具有相似特征的文档集合。 例如,你可以有一个索引用于客户数据,
    
    另外一个索引用于产品目录,以及另外一个索引用于订单数据。
    
    一个索引是由名称标示(必须小写),这个名字是用于索引当执行索引,搜索,更新和删除操作
    
    
    在单个集群中,可以根据需要定义多个索引:
    
    
    类型:
    
    在索引中,你可以定义一个或者多个类型。
    
    一个类型是一个逻辑分类/分区 其语义是完全取决于你。
    
    通常,一个类型是定义用于文档有一组相同的公共字段。
    
    比如,你运行一个博客平台存储所有你的数据在一个单个索引。
    
    在这个索引,如果你定义一个类型用于用户数据,另外的类型用于blog 数据,
    
    另外的类型用于解释数据等。
    
    Document 文档:
    
    一个文档是一个被索引信息的基本单元。例如,你可以有一个文档用于一个单独的客户,
    
    另外的文档用于一个单独的产品
    
    文档是JSON格式
    
    在一个Index/type,你可以存储很多你需要的文档。
    
    注意尽管一个文档物理驻留在一个索引里,一个文档实际上必须是被索引/分配到一个类型在一个索引里
    
    
    shards 和replicas  分片和副本:
    
    一个索引可以潜在的存储大量的数据,可以超过单个节点的硬件限制。
    
    比如,10亿文档的一个单独索引可以占据1TB的磁盘空间可能不能安放在一个单独的节点
    
    或者可能会很慢来供应请求从一个单独的节点。
    
    为了解决这个问题,Elasticsearch  提供能力来细分你的索引到多份称为shards(分片)。
    
    当你创建一个索引,你可以简单的定义shards 的数量。
    
    每个shard  本身是一个全功能的独立的索引可以在集群中的任何节点上。
    
    Sharding  分片有两个重要的原因:
    
    1. 它允许你水平的拆分/衡量你的内容卷:
    
    2. 它允许你分散和并行操作shards(可能到多个节点上),因此增加性能/吞吐量。
    
    
    一个分片的技术是分散和它的文档时聚合到搜索请求是完全通过Elasticsearch 管理
    
    传输到用户:
    
    在一个网络/云 环境  失败可以是预期的在任何时候,
    
    它是非常有用的 高度推荐的有一个失败机制 万一一个shard/node 有时候下线或者消失。
    
    为此,Elasticsearch 允许你让一个或者多个索引的shards 的拷贝被称为replica shards, or replicas for short.
    
    
    
    复制是重要的对于两个主要的原因:
    
    1.它提供了高可能的万一一个shard/node fails. 对于这个原因,
    
    它是重要的注意一个replica shard 是不要分配在相同的节点作为原始的shard
    
    
    2. 它允许你扩展你的搜索卷/吞吐量 因为搜索可以被执行在所有的副本上。
    
    总之,每个索引可以被分割到多个shards。
    
    一个索引可以被复制0个(意味着没有副本)或者 更多。
    
    一旦被复制,每个索引会有多个shards (原始的shards被复制的)和复制分片
    
    shards和replicas 的数量可以在每个索引创建的时候。
    
    当索引被创建,你可以改变replicas 的数量 但是你不能改变shards 的数量
    
    默认的,每个索引在Elasticsearch 是被分成5个主shards和一个replica 
    
    这意味着如果你有至少2个节点在你的cluster,你的索引有5个 primary shards 和另外5个 replica shards
    
    每个Elasticsearch shard 是一个Lunce index .
    

  • 相关阅读:
    解决 Mac launchpad 启动台 Gitter 图标无法删除的问题
    React 与 React-Native 使用同一个 meteor 后台
    解决 React-Native mac 运行报错 error Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65. To debug build logs further, consider building your app with Xcode.app, by ope
    一行命令更新所有 npm 依赖包
    swift学习笔记
    IOS语言总结
    focusSNS学习笔记
    别小看锤子,老罗真的很认真
    windowsphone开发页面跳转到另一个dll中的页面
    【令人振奋】【转】微软潘正磊谈DevOps、Visual Studio 2013新功能、.NET未来
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349702.html
Copyright © 2011-2022 走看看