2016-06-29 81 views
0

我一直在嘗試solr幾個星期,但我一直堅持一個查詢,我想現在執行幾天。配對的父母,雖然在父母或孩子的價值solr

我有哪裏我使用的是FQ這樣一個嵌套的數據結構:

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

這符合我的子文檔並返回父那些孩子。我對此非常滿意。但是我遇到的問題是,如果直接在父項中有一個匹配,而在子項中沒有。我不會得到迴應。

我會這樣做,以某種方式存在某種OR條件使得它,任何文檔都可以匹配搜索到的術語和parentDoc:false或上述過濾器查詢。

這甚至有可能在solr中的一個查詢中執行,還是我必須做兩個?我還沒有找到關於這個問題的任何信息,使我相信我只是想念一些微不足道的東西。

回答

0

<searched term>來自您的FQ是指父母不是孩子,因爲您在加入後只有父母的成績。 也是你的<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>))