我有一个solr字段,它有一组值。是否有可能在solr中返回基于该字段而变化的结果。 例如:我的字段包含“ValueA”,“ValueB”和“ValueC”。因此,如果行设置为3,那么它不应该从“ValueA”返回所有结果,而应该从每个字段值中给出一个(考虑到它们具有相同的分数)
答案 0 :(得分:0)
您可能想要使用Result Grouping / Field Collapsing 或CollapsingQParserPlugin。
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
中的每个值,它仅保留结果集中得分最高的文档。