2012-12-24 26 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。你最终会使用大量的动态字段。