Elasticsearch如何将嵌套对象连接到父文档

时间:2019-01-03 04:47:50

标签: elasticsearch nested

我想了解获取带有嵌套文档的父文档的成本。

  

在内部,嵌套对象将数组中的每个对象作为单独的隐藏文档编制索引,这意味着可以独立于其他嵌套对象来查询每个嵌套对象...

我找不到在ES文档中嵌套文档如何与其父级相关的解释。父文档是否保存nested ojbect _id,当我们获取父文档时,它只是通过id查找嵌套对象的来源,然后在结果中将该对象替换为id?

1 个答案:

答案 0 :(得分:1)

下面是嵌套对象的总体概念-而不像parent-child方法那样依靠id进行连接,而是利用文档的逻辑组织

每个嵌套对象都写在父文档之前:

NESTED_DOC11 NESTED_DOC12 PARENT_DOC1 NESTED_DOC21 NESTED_DOC22 PARENT_DOC2

这是一个聪明的窍门,它一直被用来对嵌套对象进行高效查询,而无需通过id进行大量查找。

但是,这意味着一些限制-例如,如果不重新索引整个“块”就无法更新/删除/添加嵌套文档

有关此方法的更多信息是there