2012-12-24 49 views
2

有沒有辦法限制或過濾Solr中多值字段的返回文本?考慮下面的文檔結構中的Solr:限制/過濾Solr中的多值字段

... 
<doc> 
    <str name="title">example</str> 
    <arr name="foo"> 
     <str>bar1</str> 
     <str>bar2</str> 
     <str>bar3</str> 
     <str>bar4</str> 
     <str>bar5</str> 
     <str>bar6</str> 
    </arr> 
</doc> 
... 

我想限制響應,只顯示基於一個過濾器查詢請求的「foo」的值1。因此,例如,查詢:

select/?q=example&fq=foo:bar2` 

我希望的反應:

... 
<doc> 
    <str name="title">example</str> 
    <arr name="foo"> 
     <str>bar2</str> 
    </arr> 
</doc> 
... 

回答

2

都能跟得上。無法過濾與響應一起返回的多值數據。
雖然你可以很容易地在客戶端做到這一點。

如果您可以使用Facet獲取列表,那麼可以使用facet.prefix來限制作爲方面返回的字段foo的值。

+0

謝謝,我期待這種類型的答案。問題在於「foo」可能包含數千個值,這些值僅僅會影響數據傳輸的效率。 – dubrie

0

如果您知道'foo'值的樣本空間,您是否嘗試使用動態字段?例如:

然後過濾bar_x:true。你最終會使用大量的動態字段。