Tagged: 分布式存储

2

ElasticSearch基础之分布式存储

我们在之前的文章中讨论了ElasticSearch中cluster的创建,也了解了Shard的概念,本文就来聊聊ElasticSearch的数据是如何在各个shard中保存和查询的。 文本和Shared的关系 我们知道index的文本是会保存到一个primary的shard中,那么ElasticSearch是如何知道某个文本是属于哪一个shard的呢?比如说我们要保存文本的时候,是应该把它保存到shard1还是shard2,读取的时候又是应该到shard1中查找还是shard2中查找,这些都是如何决定的呢? 这个问题乍一听起来好像还蛮神秘,其实仔细一想也很简单,只有有一个统一的基于某个id的算法就可以实现了。在ElasticSearch中,它是通过下面这个公式来计算的: 这里routing的值默认就是文本的id(当然也可以自定义),这样一来我们就可以把某一个文本指定到特定的shard中。...