Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
solr join-返回父文档和子文档_Join_Solr - Fatal编程技术网

solr join-返回父文档和子文档

solr join-返回父文档和子文档,join,solr,Join,Solr,我正在使用Solr的(4.0.0-beta)连接功能来查询包含具有父/子关系的文档的索引。join查询非常有效,但我只在搜索结果中获取父文档。我相信这是预期的行为 但是,是否可以在搜索结果中同时返回父文档和子文档?(作为单独的搜索点击) 例如: 家长: SolrDocument{uid=m_1, media_id=1}<br/> SolrDocument{uid=m_2, media_id=2}<br/> SolrDocument{uid=m_3, media_id=3}

我正在使用Solr的(4.0.0-beta)连接功能来查询包含具有父/子关系的文档的索引。join查询非常有效,但我只在搜索结果中获取父文档。我相信这是预期的行为

但是,是否可以在搜索结果中同时返回父文档和子文档?(作为单独的搜索点击)

例如:

家长:

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

我在结果中得到了父文档(uid=m_1),正如预期的那样。但在这种情况下,我希望在结果中同时返回父对象和子对象。那可能吗?

不,不可能。根据Solr Wiki:

对于习惯SQL的人来说,重要的是要注意Solr中的联接实际上并不等同于SQL联接,因为没有关于“从”联接的表的信息被带入最终结果。更合适的SQL类比是“内部查询”

要做到这一点,您必须对所有数据进行非规范化,或者运行两个不同的查询

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