根据solr字段向搜索结果添加变体

时间:2015-11-20 02:45:57

标签: search solr lucene solrj lucidworks

我有一个solr字段,它有一组值。是否有可能在solr中返回基于该字段而变化的结果。 例如:我的字段包含“ValueA”,“ValueB”和“ValueC”。因此,如果行设置为3,那么它不应该从“ValueA”返回所有结果,而应该从每个字段值中给出一个(考虑到它们具有相同的分数)

1 个答案:

答案 0 :(得分:0)

您可能想要使用Result Grouping / Field CollapsingCollapsingQParserPlugin

CollapsingQParserPlugin比较新(因为Solr 4.6),更快,更适合您的问题,我想,因为它不会影响结果的结构。

只需将其添加到solrconfig.xml:

<queryParser name="collapse" class="org.apache.solr.search.CollapsingQParserPlugin"/>

然后,您可以通过在查询中添加以下参数来折叠结果:

fq={!collapse field=my_field}

或在Solrj:

solrQuery.addFilterQuery("{!collapse field=my_field}");

折叠表示:对于my_field中的每个值,它仅保留结果集中得分最高的文档。