【问题标题】:Routing elasticsearch document indexing issue路由elasticsearch文档索引问题
【发布时间】:2014-03-06 16:16:09
【问题描述】:

在创建包含多个作者但仅属于 11 个不同出版物的子集的书籍索引时,我打算在单个节点上拥有 11 个索引碎片。

显然我的映射的路由部分看起来像,

"book":{
      "_routing":{
         "required":true,
         "path":"publication"
      },....

publication 本身就是一个字符串,可以有 11 种不同的类型。

我的映射的settings 部分看起来像

body: {
    settings: {
       index: {
           number_of_shards: 11,
           number_of_replicas: 1
        }
     },....  

我面临的问题是,在我查看了books/_statusbooks/_segments 查询的结果后,不同publication 的文档已在同一个shard 中编入索引,而一些分片则为空。

我查看了reroute API,但显然应该寻找其他问题。

在指定路由后这种不均等的文档分布让我完全放弃routing

我一直使用的版本是0.90.5。

【问题讨论】:

    标签: indexing elasticsearch sharding


    【解决方案1】:

    路由不保证分片上的所有项目都具有相同的路由键,它会确保共享路由键的所有文档都在同一个分片上。

    Here is a good ES post about it

    还有来自底部的引述:

    这个分片几乎肯定有其他文档,而不是属于 给用户 123。路由确保特定路由的文档 价值都去同一个分片......但这并不意味着其他 文档也不会路由到分片。

    【讨论】:

    • 感谢您的澄清。应该自己找到的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2021-02-16
    相关资源
    最近更新 更多