我想知道是否可以在我的回复中返回SolrDocument,首先指定一个返回例如100个最昂贵产品的查询,之后只将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;回来。
触发查询?q = *&amp; sort = prod_amt desc&amp; rows = 100(假设您的产品数量名称为'prod_amt'字段) - 这将为您提供前100名昂贵的产品。
触发查询?q = *&amp; sort = random_12939291 desc&amp; rows = 1(此处12939291只是一个随机字符串)。
希望这有帮助。
由于
Shiva Kumar SS