Solr DataImportHandler-连接与独立实体
在Solr DIH data-config.xml中,在主实体中使用JOIN like查询获取尽可能多的字段是否更好:Solr DataImportHandler-连接与独立实体,solr,dataimporthandler,Solr,Dataimporthandler,在Solr DIH data-config.xml中,在主实体中使用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.li
<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">
或使用单独的子实体,如:
<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>
一些可以帮助您做出决定的建议:-
- 子实体为每个记录触发一个查询,因此,如果您有一个庞大的集合,则性能会变慢
- 如果您有一对一映射,您可以使用联接,这样您就可以通过一个查询本身获得所有字段
- 如果根目录有多条记录,则将使用可能创建多值字段的子实体。(您不能使用单个联接查询,因为它将为同一文档返回多行,除非您需要该行为)