我一直在尝试使用solr几个星期,但我一直坚持查询我想要执行几天。
我有一个嵌套的数据结构,我使用这样的fq:
{!parent which="parentDoc:true"}parentDoc:false AND <searched term>
这匹配我的子文档并将父级返回给这些子级。我很满意。但我遇到的问题是如果父母内部直接匹配而儿童中没有任何内容。我不会得到答复。
我会这样做,以便在某种程度上存在某种OR条件使得它如此,任何文档都可以匹配搜索的术语AND parentDoc:false或上面的过滤器查询。
这甚至可以在solr中的一个查询中执行,还是我必须生成两个?我还没有找到关于这个问题的任何信息,让我相信我只是错过了一些微不足道的事情。
答案 0 :(得分:0)
<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>))