首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ES 2.2.0迁移到ES 2.3.0时获取RoutingMissingException

从ES 2.2.0迁移到ES 2.3.0时获取RoutingMissingException
EN

Stack Overflow用户
提问于 2016-03-30 21:43:51
回答 2查看 564关注 0票数 0

我在BulkRequest中使用BulkRequest查询,其中有一组必须删除的ID。

我用:

代码语言:javascript
复制
BulkRequestBuilder bulkRequest = searchClient.prepareBulk();
for id in ids {
    bulkRequest.add(searchClient.prepareDelete("indexName", "childType", id));
}
BulkResponse bulkResponse = bulkRequest.execute().actionGet();

这个删除结构在ES2.2.0中有效,但在ES2.3.0中我得到了RoutingMissingException

如果我打印bilkResponse.buildFailureMessage()并得到

代码语言:javascript
复制
[0]: index [indexName], type [childType], id [215f3228a3c53970883ae0d3b22dae6f], message [[indexName] RoutingMissingException[routing is required for [indexName]/[childType]/[215f3228a3c53970883ae0d3b22dae6f]]]

我甚至没有更改现有索引的设置/映射。

可能是什么原因?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-31 07:38:33

似乎是一个类似于回答这里的问题

引用完成的答案

当您有父级子关系时,每次尝试访问其子节点时,都需要在URL中指定父级,因为路由现在取决于父级。 在您的示例中,您可能希望尝试: 卷曲-XDELETE id]

这对你也有帮助。删除子文档

票数 0
EN

Stack Overflow用户

发布于 2016-04-05 17:55:11

@rahulroc是对的。我要增加一份按时间顺序列出介绍这一特性的问题的清单:

  1. 不要向所有碎片广播删除 (2014年)
  2. 删除api:如果需要时缺少路由,则删除广播删除 (2015年)
  3. Bulk api:在需要路由但未指定路由时,失败删除 (2016年)

也许更新3是导致异常出现在es-2.3.0中的原因。因此,您只需使用has_child 查询从子文档id中获取父文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36320287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档