我已经嵌套了文档,因为我只有一个碎片,所以在dev中一切都很好,但在生产中它失败并显示以下消息:
{"error"=>"RoutingMissingException[routing is required for [users]/[timeline_post]/[1]]", "status"=>500}
记录的查询是:
curl -X POST "http://foo.qbox.io/users/timeline_post/1?parent=23" -d '{"id":1,"body":"foo"}'
我认为如果提供父级,则无需指定路由。
请问这里有什么问题吗?
仅供参考,我给了other details here。
答案 0 :(得分:1)
我的猜测是你在映射中设置了routing.required = true。设置父文档默认情况下仅使用父文档名称进行路由(请注意,它仅使用文档名称,并且不会对文档所在的分片进行任何查找)。当您进行自定义路由时,您还需要在包含父项的文档中包含路由,并确保每个文档的路由方式与其父文档相同。