我想了解获取带有嵌套文档的父文档的成本。
在内部,嵌套对象将数组中的每个对象作为单独的隐藏文档编制索引,这意味着可以独立于其他嵌套对象来查询每个嵌套对象...
我找不到在ES文档中嵌套文档如何与其父级相关的解释。父文档是否保存nested ojbect _id
,当我们获取父文档时,它只是通过id查找嵌套对象的来源,然后在结果中将该对象替换为id?
答案 0 :(得分:1)
下面是嵌套对象的总体概念-而不像parent-child方法那样依靠id进行连接,而是利用文档的逻辑组织
每个嵌套对象都写在父文档之前:
NESTED_DOC11 NESTED_DOC12 PARENT_DOC1 NESTED_DOC21 NESTED_DOC22 PARENT_DOC2
这是一个聪明的窍门,它一直被用来对嵌套对象进行高效查询,而无需通过id进行大量查找。
但是,这意味着一些限制-例如,如果不重新索引整个“块”就无法更新/删除/添加嵌套文档
有关此方法的更多信息是there