文档字段值作为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</

我有以下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</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}