匹配父级,虽然父级或子级solr

时间:2016-06-29 14:30:01

标签: solr lucene

我一直在尝试使用solr几个星期,但我一直坚持查询我想要执行几天。

我有一个嵌套的数据结构,我使用这样的fq:

{!parent which="parentDoc:true"}parentDoc:false AND <searched term>

这匹配我的子文档并将父级返回给这些子级。我很满意。但我遇到的问题是如果父母内部直接匹配而儿童中没有任何内容。我不会得到答复。

我会这样做,以便在某种程度上存在某种OR条件使得它如此,任何文档都可以匹配搜索的术语AND parentDoc:false或上面的过滤器查询。

这甚至可以在solr中的一个查询中执行,还是我必须生成两个?我还没有找到关于这个问题的任何信息,让我相信我只是错过了一些微不足道的事情。

1 个答案:

答案 0 :(得分:0)

来自您的FQ的

<searched term>指的是父母而不是孩子,因为您在加入后只有父母参与结果。 此外,<searched term>与加入命令完全不同。

放置q=*:*,如果您想根据子条件过滤,可以在fq:

中使用
+{!parent which=parentDoc:true v='parentDoc:false AND (<children_conditions>)'} AND <parents_conditions>

如果您想扩展子项,请添加RAW查询:

expand.field=_root_&expand=true&expand.fq=*:*

或更具体:

expand.field=_root_&expand=true&expand.fq=(parentDoc:false AND (<children_conditions>))