首页 > 解决方案 > 使solr中的结果集多样化而不分组

问题描述

我从 solr 7.7.1 中检索特定类别的结果,我想按用户使结果多样化。每当访问者查看一个类别时,应该可以看到来自多个来源的新鲜和相关数据。

数据来自用户导入,每当导入完成时,一个用户就会占据该类别的第一页。我想确保第一页上有许多用户提供的多样化但相关的优惠。

我当前的查询过滤类别并按价格排序:

select?
q=*:*&
start=0&
rows=50&
fq=type:classifieds&
fq={!tag=cat_main}cat_main_id:15&
fl=*,score&
sort=date_created%20desc

我尝试了按库存、价格和组合排序的不同排序。

$this->query->addSortField( 'date_created', SolrQuery::ORDER_DESC  );
// $this->query->addSortField( 'avail_id', SolrQuery::ORDER_DESC  );
// $this->query->addSortField( 'price', SolrQuery::ORDER_ASC  );

它们都没有带来多样性,而只会带来更糟糕的结果。

然后我尝试按 user_id 分组:

$this->query->setGroup(true);
$this->query->addGroupField( 'user_id' );

但这不仅缩小了分页中的结果数量,而且更重要的是返回了一个不同的 json 响应,这将花费巨大的努力来重写我的应用程序。

如何确保不会从一个用户返回很多结果?

标签: searchsolr

解决方案


推荐阅读