search - 使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 响应,这将花费巨大的努力来重写我的应用程序。
如何确保不会从一个用户返回很多结果?
解决方案
推荐阅读
- deep-learning - pytorch:基本操作实现的实例规范与torch.nn.InstanceNorm2d相比具有不同的结果
- hololens - Hololens2 虹膜识别
- c++ - 是否有以原子方式加载非原子值的功能?
- error-handling - (SQR 4008) 表达式中的未知函数或变量
- gcloud - 处理少量消息后未收到 Google PubSub ACK
- ruby-on-rails - Rails:哪个实例属于在控制器中定义的变量?
- github - Github Action:从另一个分支触发工作流
- python - 申请熊猫最快的方法
- css - 在 ng-template 上实现可滚动
- google-sheets - Google Sheets Text Join 将字符从列连接到行