Solr的加入 - 回报父母和子女的文件(solr join - return parent and

2019-07-31 01:45发布

我使用Solr的(4.0.0-β)参加能力来查询与父/子关系文档的索引。 连接查询的伟大工程,但我只获得在搜索结果母文件。 我相信这是预期的行为。

是否有可能,不过,同时获得了家长和孩子的文件将在搜索结果中返回? (作为单独的搜索命中)。

例如:

父母:

SolrDocument{uid=m_1, media_id=1}<br/>
SolrDocument{uid=m_2, media_id=2}<br/>
SolrDocument{uid=m_3, media_id=3}

儿童:

SolrDocument(uid=p_1, page_id=1, fk_media_id=[1], partNumber=[abc, def, xyz]}<br/>
SolrDocument(uid=p_2, page_id=2, fk_media_id=[1,2], partNumber=[123, 456]}<br/>
SolrDocument(uid=p_3, page_id=3, fk_media_id=[1,3], partNumber=[100, 101]}

我查询按号码如下:

{!join from=fk_media_id to=media_id}partNumber:abc

我得到的结果父文档(UID = M -1),符合市场预期。 但我想,在这种情况下,无论是家长和孩子在结果中返回。 那可能吗?

Answer 1:

不,不It's更多钞票。 据Solr的维基:

对于谁是用于SQL的人,一定要注意在Solr的是加盟是不是真的等同于SQL连接,因为没有关于表的信息是“从”被结转到最后的结果加入是很重要的。 一个更合适的SQL比喻将是一个“内部查询””

http://wiki.apache.org/solr/Join

你必须非规范化所有数据做或运行两个不同的querys。



文章来源: solr join - return parent and child document
标签: join solr