Solrj随机排序

时间:2014-11-18 19:49:29

标签: solr solrj

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

1 个答案:

答案 0 :(得分:0)

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

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

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

<fieldType name="random" class="solr.RandomSortField" indexed="true" />

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

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

如上图所示在solr.xml中修改这些,并激活2个查询,合并结果&amp;回来。

  1. 触发查询?q = *&amp; sort = prod_amt desc&amp; rows = 100(假设您的产品数量名称为'prod_amt'字段) - 这将为您提供前100名昂贵的产品。

  2. 触发查询?q = *&amp; sort = random_12939291 desc&amp; rows = 1(此处12939291只是一个随机字符串)。

  3. 希望这有帮助。

    由于

    Shiva Kumar SS

相关问题