文档字段值作为solr中嵌套子查询的参数
我有以下solr的嵌套数据:文档字段值作为solr中嵌套子查询的参数,solr,subquery,Solr,Subquery,我有以下solr的嵌套数据: <add> <doc> <field name="id">1</field> <field name="path">1.root</field> <field name="title_tsi">Solr has block join support</field> <field name="type">parentDocument</
<add>
<doc>
<field name="id">1</field>
<field name="path">1.root</field>
<field name="title_tsi">Solr has block join support</field>
<field name="type">parentDocument</field>
<doc>
<field name="id">2</field>
<field name="path">2.root.sub</field>
<field name="parent">1</field>
<field name="comments_tsi">SolrCloud supports it too!</field>
<field name="type">childDocument</field>
<field name="subcomment_tsi">
<doc>
<field name="id">5</field>
<field name="path">3.root.sub.sub2</field>
<field name="parent">2</field>
<field name="comments_tsi">This is a subcomment</field>
<field name="type">childchildDocument</field>
</doc>
</doc>
</field>
</doc>
</add>
将导致显示所有根文档,然后显示根文档中的所有子文档
但是,如果我想将其扩展为在子文档中也包含孙子文档,那么通过向子查询添加子查询,我的查询将失败
q=path:1.*&fl=*,d1:[subquery]&d1.q={!terms f=parent v=$row.id}&d1.fl=*,d2:[subquery]&d2.q={!terms f=parent v=$row.id}
这将为所有子文档生成所有孙文档,而不仅仅是对应的id/父条目应该匹配的那些文档
因此,我的问题是:
1) “$row.id”在查询中具体指的是什么?我找不到关于这个问题的文件。在第一个子查询中,它清楚地引用了根文档的原始id,这是应该的。但是如何使它引用第二个子查询中的子文档的id呢
2) 对于深度为n的嵌套数据,有没有更聪明的方法来实现这一点
q=path:1.*&fl=*,d1:[subquery]&d1.q={!terms f=parent v=$row.id}&d1.fl=*,d2:[subquery]&d2.q={!terms f=parent v=$row.id}