Solr DataImportHandler - JOIN vs. separate entity
dataimporthandler, solr
Solution
Few Pointers that may help you to decide :-
- Sub entities fire a query for each of the records and hence would be slower in performance if you have a huge collection.
- If you have a one to one mapping you can use the join so that you get all the fields with one query itself.
- If you have multiple records for the root you would use the sub entity which would probably create a multivalued field. (You cant use a single join query as it would return multiple rows for the same document unless you want the behavior)
Problem
In Solr DIH data-config.xml, is it better to fetch as many fields as possible with the query in the main entity with JOIN like: ``` <entity name="Lists" pk="l.list_id" query="SELECT l.list_id AS id, l.user_id, lo.is_votable FROM lists l INNER JOIN list_options lo ON lo.list_id = l.list_id"> ``` or use a separate sub-entity like: ``` <entity name="Lists" pk="l.list_id" query="SELECT l.list_id AS id, l.user_id FROM lists l"> <entity name="ListOptions" query="SELECT lo.is_votable FROM list_options lo WHERE lo.list_id=${Lists.id}" /> </entity> ```