ES文檔之間關(guān)系

  1. 父-子關(guān)系文檔

父子關(guān)系文檔在實(shí)質(zhì)上類(lèi)似于nested model:允許將一個(gè)實(shí)體對(duì)象與另一個(gè)實(shí)體對(duì)象關(guān)聯(lián)起來(lái)。而這兩種類(lèi)型的主要區(qū)別是:在nested objects文檔中,所有對(duì)象都是在同一個(gè)文檔中,而在父子關(guān)系文檔中,父對(duì)象和子對(duì)象都是完全獨(dú)立的文檔。

更新父文檔時(shí),不會(huì)重新索引子文檔
創(chuàng)建,修改或者刪除子文檔時(shí),不會(huì)影響父文檔。這一點(diǎn)在這種場(chǎng)景下尤其有用:子文檔數(shù)量較多,并且子文檔創(chuàng)建和修改的頻率較高。
子文檔可以作為搜索結(jié)果獨(dú)立返回。 父子文檔關(guān)聯(lián)查詢(xún)操作較快。但是父子文檔關(guān)系有個(gè)限制條件:父文檔和其所有子文檔都必須要存儲(chǔ)在同一個(gè)分片中。 父子文檔ID映射存儲(chǔ)在Doc Values中。當(dāng)映射完全在內(nèi)存中時(shí),Doc Values提供對(duì)映射的快速處理能力,另一方面當(dāng)映射非常大時(shí),可以通過(guò)溢出到磁盤(pán)提供足夠的擴(kuò)展能力。 如果你想改變一個(gè)子文檔的parent值,僅通過(guò)更新這個(gè)子文檔是不夠的,因?yàn)樾碌母肝臋n有可能在另外一個(gè)分片上。因此,你必須要先把子文檔刪除,然后在重新索引這個(gè)子文檔。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容