Elasticsearch为啥这么快

Posted jiaxinzhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch为啥这么快相关的知识,希望对你有一定的参考价值。

1.1 Node节点维度

  参考博客:https://www.jianshu.com/p/b50d7fdbe544

  1、多节点的集群方案

      1. 路由一个文档到一个分片中:当索引一个文档的时候,文档会被存储到一个主分片中。

      2. Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?实际上,这个过程是根据下面这个公式决定的:

shard = hash(routing) % number_of_primary_shards

      3. routing 是一个可变值,默认是文档的 _id ,也可以设置成一个自定义的值。

      4. 这就解释了为什么我们要在创建索引的时候就确定好主分片的数量,并且永远不会改变这个数量

      5. 因为如果数量变化了,那么所有之前路由的值都会无效,文档也再也找不到了。

      6. 确定了在哪个分片中,继而可以判定其在哪个节点上。

      7. 那么主分片数确定的情况下,如果做集群扩容呢?

        1)下图是一种主分片的扩容办法,开始设置为5个分片,在单个节点上,后来扩容到5个节点,每个节点有一个分片。

        2)也就是说单个分片的容量变大了,但是数量并不增加。

以上是关于Elasticsearch为啥这么快的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch:ES 倒排索引为啥查询速度会这么快

为啥熊猫这么快?如何定义这样的功能?

elasticsearch为啥快

为啥“.concat(String)”比“+”快这么多? [复制]

为啥 strcmp 比我的函数快这么多?

为啥新的 ElasticSearch 安装运行这么多进程?