基于 solr 字段向搜索结果添加变体

Add variation to the Search Results based on a solr field

我有一个包含一组值的 solr 字段。在 solr 中是否有可能根据该字段改变 return 结果。 例如:我的字段包含 "ValueA"、"ValueB" 和 "ValueC"。因此,如果行设置为 3,那么不是 returning 来自 "ValueA" 的所有结果,它应该从每个字段值中给我一个(考虑到它们具有相同的分数)

您可能想使用 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}");

Collapsing的意思是:对于my_field中的每个值,它只保留结果集中得分最高的文档。