在小平面上的Solr滤波器

时间:2015-04-13 22:13:46

标签: solr lucene solrj facets

我的每个文档都可以有一个名为Classes的字段的一个或多个条目,描述文档的一些属性,总是以下形式:

<field name="Classes">"<Description> - <TypeLabel> - <OriginLabel>"</field>

因此,例如关于食物的文件可能包含两个字段:

<field name="Classes">"Yellow orange - Fruit - California"</field>
<field name="Classes">"Small broccoli - Vegetable - Florida"</field>

我正在使用Solr 5.0和schema.xml文件,其中我有一个multiValued“text_en”字段我复制到“string”字段Classes_asString的类,这样我就可以在整个字段上进行分面处理并将其视为大牌。

使用Classes_asString上的facet.field我得到了我想要的方面计数,但现在我想另外过滤这些结果。

例如,我如何才能获得以“加利福尼亚”结尾的分面结果?

或者,在另一个例子中,我如何只得到两个“ - ”之间有“蔬菜”的方面结果?

我见过facet.prefix选项,但这不适用于我的情况。我将不胜感激任何帮助或建议。

1 个答案:

答案 0 :(得分:1)

也许这种情况是一个好用的地方:

  • 将课程信息编入Child documents。您在这些字段中至少有3个字段,因此值得使用自己的文档吗?
  • 然后你应该可以在特定的子字段上进行分面,如果支持(不确定),则使用当前的Solr版本,或者使用尚未合并的work in this ticket