zoukankan      html  css  js  c++  java
  • elasticsearch系列(一) 术语

    elasticsearch(以下简称es)是一款开源的搜索引擎,基于apach lucene。最近在做nlp的时候顺便研究一下。

    下面是官方列举的术语解释

    Near Realtime

    接近实时的查询,通常情况下,延迟在1s以内

    Cluster

    一个集群由1个或者多个节点组成,这些节点提供整个数据和索引,性能来源于每个节点。一个集群有一个唯一的名字,默认为“elasticsearch”,

    Node

    一个node启动的时候分配一个唯一的id(UUID),自动会加入名为“elasticsearch”的cluster,前提是网络没有问题,一个node只能加入一个集群。

    Index

    一个index是一些有相似特征的documents集合,比如有一个顾客类的index,一个生产类的index,有一个订单类的index。index必须都是小写的

    Type

    一个index可以定义出多个type,一个type是一个逻辑的类别或者分区,并且其语义完全取决于自己,一般而言一个type定义了包含多个fields的documents。

    Document

    一个document是可以被索引信息的基础单元,尽管一个document在物理上是属于index的,但事实上,一个document必须被索引或者分配到一个index里的type。

    Shard&Replicas

    一个index可以存储大量的数据,并且超过单节点的限制。例如,单个index可能含有几十亿个documents,占据了1TB的磁盘空间,这就可能导致单个node可能没有这么大的空间,或者在查询的时候会很慢。

    为了解决这个问题,es给出了shard的概念,将一个index拆分成多个部分。创建的index就可以申明shard的数量,每个shard都是拥有完整和独立的index。

    Sharding的两个重要点:

    1.shard允许你对大量数据做横向切分

    2.shard允许通过多个shards分布式并发的操作,从而提升性能和吞吐量

    Shard是如何分布的以及多个它们的documents是如何被合并都由es管理,这些对使用者都是透明的。

    关于容错,es通过replica来解决,replica是index下的shard的副本。

    Replicaing的两个重要点:

    1.提供了HA。需要提醒的是,replica和shard不应该在同一个node

    2.搜索可以在所有的replica并发处理

    你可以在创建的时候设置index的shard和replica数量,但是之后,你只能更改replica的数量,而不能更改shard的数量.

    Es的默认配置为,5个shards和1个replica,如果你的cluster有两个及以上的node,则一共有10个shards(5 primary shards,5 replica shards)

    其他

    Es的一个shard就是lucene的index

    总结

    逻辑上,index、type、documents作为namespace的存在,可以充分表现Restful风格的接口

    物理上,index可以看做是数据库中的库,通过shard(类似partition)做HA和高并发

    参考资料

    //es官方介绍

    https://www.elastic.co/guide/en/elasticsearch/reference/5.2/_basic_concepts.html

     

    新博客地址 http://ixiaosi.art/ 欢迎来访 : )
  • 相关阅读:
    课后作业
    动手动脑
    原码,补码,反码
    CodingSouls团队项目冲刺-个人概况(7)
    《人月神话》阅读笔记03
    数据库学习
    家庭小账本——数据库的编写与测试
    家庭小账本——适配器的编写与测试
    UI高级组件
    UI高级组件
  • 原文地址:https://www.cnblogs.com/ulysses-you/p/6736926.html
Copyright © 2011-2022 走看看