Join Solr-具有多个子约束的块连接父查询
该问题适用于以下嵌套文档:Join Solr-具有多个子约束的块连接父查询,join,solr,constraints,block,Join,Solr,Constraints,Block,该问题适用于以下嵌套文档: <doc> <field name="id">1</field> <field name="title">Solr has block join support</field> <field name="content_type">parentDocument</field> <doc> <field name="id">11</f
<doc>
<field name="id">1</field>
<field name="title">Solr has block join support</field>
<field name="content_type">parentDocument</field>
<doc>
<field name="id">11</field>
<field name="type">comment</field>
<field name="comments">SolrCloud supports it too!</field>
</doc>
<doc>
<field name="id">12</field>
<field name="type">publisher</field>
<field name="address">England</field>
....
</doc>
</doc>
....
结果返回0 对于您的用例,您可以只使用多个块连接过滤器:
q=*:*&
fq={!parent which="content_type:accommodation"}(+type:comment +comments:SolrCloud)&
fq={!parent which="content_type:accommodation"}(+type:publisher +address:England)
第一个过滤器将查找哪些父文档的子文档满足条件(+类型:comment+注释:SolrCloud)
第二个过滤器clouse将对满足第一个过滤器的父文档子集进行操作。它会在这个子集中找到满足条件的父文档
(+类型:publisher+地址:England)
我回到公司后会尝试你的解决方案!你的建议行不通!即使只有一个fq查询子句!查询必须放在子句中,该子句以q={!parent=..}开头。但是如前所述,我仍然不知道如何编写查询!嗨,分子人,它现在起作用了!但是主查询必须是那些块连接查询之一,或者主查询必须返回所有内容,例如:q=*:*请更新您的答案,以便将其标记为正确答案!你好,Tim Long,非常感谢你的解决方案,因为一段时间以来我一直在为这件事伤脑筋。我想您应该使用自动回答功能将此问题标记为已解决。顺便问一下,当我将查询分组到paranthesis中并在子查询条件中包含AND条件时,此查询({!parent which=“doc_type:parent”}Abc和Def)的问题何在。为什么会这样
q=*:*&
fq={!parent which="content_type:accommodation"}(+type:comment +comments:SolrCloud)&
fq={!parent which="content_type:accommodation"}(+type:publisher +address:England)