[英]What is the difference between a Join Query and Embedded Entities in Solr DIH?
我正在嘗試使用Solr的數據導入處理程序在多個表中索引數據。 DIH上的官方維基建議使用嵌入式實體鏈接多個表,如下所示:
<document>
<entity name="item" pk="id" query="SELECT * FROM item">
<entity name="member" pk="memberid" query="SELECT * FROM member WHERE memberid='${item.memberid}'>
</entity>
</entity>
</document>
另一種方法是:
<document>
<entity name="item" pk="id" query="SELECT * FROM item INNER JOIN member ON item.memberid=member.memberid">
</entity>
</document>
這兩種方法在功能上有所不同嗎? 有性能差異嗎? 我的猜測是第一種方法是支持非SQL表,但我不確定。
另一個問題是,如果在MySQL中使用連接表,則使用具有多個連接的SQL查詢方法可能會導致多個文檔被索引而不是一個。
我遇到的一些事情: -
想聽聽其他用戶的意見。
如果要優化性能,可以使用第二個選擇來創建物化視圖。 這意味着您可以直接從物化視圖導入DIH(不在DIH中創建任何內部連接或子實體,這將意味着更快的導入和源數據庫不會“過熱”)如果您願意,您可以創建一個cronjob每天或根據需要快速刷新物化視圖。 如果您使用的是MySQL,可以在這里查看具體化視圖的詳細信息。 希望有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.