Elasticsearch7.3第六模块有哪些学习要点?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1915个文字,预计阅读时间需要8分钟。
1. 数据路由1.1+文档存储如何通过路径到相应分区?一个文档,最终会落在主分区的哪个分区上?最终应落在哪个分区?这是数据路由。
1.2+路由算法shard=hash(routing) % number_of_primary
1、数据路由 1.1 文档存储怎么路由到相应分片?一个文档,最终会落在主分片的一个分片上,到底应该在哪一个分片?这就是数据路由。
1.2 路由算法shard = hash(routing) % number_of_primary_shards
简单来说就是哈希值对主分片数取模。
举例:
对一个文档经行crud时,都会带一个路由值 routing number。默认为文档_id(可能是手动指定,也可能是自动生成)。
存储1号文档,经过哈希计算,哈希值为2,此索引有3个主分片,那么计算2%3=2,就算出此文档在P2分片上。决定一个document在哪个shard上,最重要的一个值就是routing值,默认是_id,也可以手动指定,相同的routing值,每次过来,从hash函数中,产出的hash值一定是相同的。无论hash值是几,无论是什么数字,对number_of_primary_shards求余数,结果一定是在0~number_of_primary_shards-1之间这个范围内的。
1.3 手动指定 routing number
PUT /test_index/_doc/15?routing=num { "num": 0, "tags": [] }
场景:在程序中,架构师可以手动指定已有数据的一个属性为路由值,好处是可以定制一类文档数据存储到一个分片中。
本文共计1915个文字,预计阅读时间需要8分钟。
1. 数据路由1.1+文档存储如何通过路径到相应分区?一个文档,最终会落在主分区的哪个分区上?最终应落在哪个分区?这是数据路由。
1.2+路由算法shard=hash(routing) % number_of_primary
1、数据路由 1.1 文档存储怎么路由到相应分片?一个文档,最终会落在主分片的一个分片上,到底应该在哪一个分片?这就是数据路由。
1.2 路由算法shard = hash(routing) % number_of_primary_shards
简单来说就是哈希值对主分片数取模。
举例:
对一个文档经行crud时,都会带一个路由值 routing number。默认为文档_id(可能是手动指定,也可能是自动生成)。
存储1号文档,经过哈希计算,哈希值为2,此索引有3个主分片,那么计算2%3=2,就算出此文档在P2分片上。决定一个document在哪个shard上,最重要的一个值就是routing值,默认是_id,也可以手动指定,相同的routing值,每次过来,从hash函数中,产出的hash值一定是相同的。无论hash值是几,无论是什么数字,对number_of_primary_shards求余数,结果一定是在0~number_of_primary_shards-1之间这个范围内的。
1.3 手动指定 routing number
PUT /test_index/_doc/15?routing=num { "num": 0, "tags": [] }
场景:在程序中,架构师可以手动指定已有数据的一个属性为路由值,好处是可以定制一类文档数据存储到一个分片中。

