Solr のデータ インポート ハンドラーを使用して、複数のテーブルにわたってデータのインデックスを作成しようとしています。DIHの公式 wiki では、次のように埋め込みエンティティを使用して複数のテーブルをリンクすることを提案しています。
<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>
これら2つの方法は機能的に異なりますか? 性能差はありますか?私の推測では、最初の方法は非 SQL テーブルをサポートすることですが、よくわかりません。
もう 1 つの問題として、MySQL でジョイン テーブルを使用している場合、複数のジョインで SQL クエリ メソッドを使用すると、1 つではなく複数のドキュメントがインデックス化される可能性があります。