elasticsearch,sharding,Indexing,elasticsearch,Sharding" /> elasticsearch,sharding,Indexing,elasticsearch,Sharding" />

Indexing 路由弹性搜索文档索引问题

Indexing 路由弹性搜索文档索引问题,indexing,elasticsearch,sharding,Indexing,elasticsearch,Sharding,在创建一个包含多个作者但只属于11种不同出版物子集的书籍索引时,我打算在单个节点上创建11个索引碎片 显然,我映射的路由部分看起来像 "book":{ "_routing":{ "required":true, "path":"publication" },.... 出版物本身是一个字符串,可以有11种不同类型 映射的设置部分如下所示 body: { settings: { index: {

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

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

"book":{
      "_routing":{
         "required":true,
         "path":"publication"
      },....
出版物
本身是一个字符串,可以有11种不同类型

映射的
设置
部分如下所示

body: {
    settings: {
       index: {
           number_of_shards: 11,
           number_of_replicas: 1
        }
     },....  
我面临的问题是,不同的
出版物
的文档已被索引到相同的
碎片
,而在我查看
books/\u status
books/\u段
查询的结果后,一些碎片是空的

我研究了
重新路由
API,但显然应该寻找其他问题

在指定路由之后,文档的这种不平等分布正诱使我完全放弃
路由


我使用的版本是0.90.5。

路由不高估碎片上的所有项目都具有相同的路由密钥,它将确保共享路由密钥的所有文档都位于同一分片上

下面引用一句话:

这个碎片几乎肯定有其他的文件 致用户123。传送可确保特定传送的文档 所有值都指向同一个碎片…但这并不意味着另一个 文档也不会路由到碎片


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

下面引用一句话:

这个碎片几乎肯定有其他的文件 致用户123。传送可确保特定传送的文档 所有值都指向同一个碎片…但这并不意味着另一个 文档也不会路由到碎片


谢谢你的澄清。我应该自己找到的。谢谢你的澄清。我应该自己找到的。