- 父-子關(guān)系文檔
父子關(guān)系文檔在實質(zhì)上類似于nested model:允許將一個實體對象與另一個實體對象關(guān)聯(lián)起來宏蛉。而這兩種類型的主要區(qū)別是:在nested objects文檔中,所有對象都是在同一個文檔中,而在父子關(guān)系文檔中,父對象和子對象都是完全獨立的文檔。
更新父文檔時蠕蚜,不會重新索引子文檔
創(chuàng)建佣赖,修改或者刪除子文檔時,不會影響父文檔倍权。這一點在這種場景下尤其有用:子文檔數(shù)量較多呼巷,并且子文檔創(chuàng)建和修改的頻率較高般婆。
子文檔可以作為搜索結(jié)果獨立返回。 父子文檔關(guān)聯(lián)查詢操作較快朵逝。但是父子文檔關(guān)系有個限制條件:父文檔和其所有子文檔都必須要存儲在同一個分片中。 父子文檔ID映射存儲在Doc Values中乡范。當(dāng)映射完全在內(nèi)存中時配名,Doc Values提供對映射的快速處理能力啤咽,另一方面當(dāng)映射非常大時,可以通過溢出到磁盤提供足夠的擴展能力渠脉。 如果你想改變一個子文檔的parent值宇整,僅通過更新這個子文檔是不夠的,因為新的父文檔有可能在另外一個分片上芋膘。因此鳞青,你必須要先把子文檔刪除,然后在重新索引這個子文檔为朋。