首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solrj随机排序

Solrj随机排序
EN

Stack Overflow用户
提问于 2014-11-19 03:49:29
回答 1查看 355关注 0票数 0

我想知道是否可以在我的响应中返回一个SolrDocument,首先指定一个查询,该查询返回例如100种最昂贵的产品,然后随机只向我的应用程序返回1种产品。

EN

回答 1

Stack Overflow用户

发布于 2014-11-20 19:42:25

我认为solr不会为你的需求返回一个查询,你想要100个最昂贵的(这本身是基于标准的),然后是随机产品的最后一个记录。

据我所知,你必须使用2个查询才能得到结果。在此之前,您必须在solr.xml中包含一个随机字段排序,如下所示:

在solr.xml中使用RandomSortField。在solr downloads的example目录(在solr文件夹下)的捆绑的schema.xml中有一个示例:

代码语言:javascript
复制
<fieldType name="random" class="solr.RandomSortField" indexed="true" />

<dynamicField name="random_*" type="random" />

这将根据字段random_对结果列表进行排序,其中您将替换为随机生成的值(但如果您正在对结果进行分页,则使用相同的值,因为它将根据字段名称提供稳定的排序)。

如上图所示,在solr.xml中修改这些,并触发2个查询,合并结果并返回。

  1. 触发查询?q=*&sort=prod_amt desc&rows=100 (假设您的产品金额在字段中的名称为'prod_amt‘)-这将为您提供前100种昂贵的产品。
  2. 触发查询?q=*&sort=random_12939291 desc&rows=1 (此处12939291只是一个随机字符串)。

希望这能有所帮助。

谢谢

Shiva Kumar SS

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27002754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档