SOLR - 通过两个排序对一个字段进行双重搜索

时间:2016-10-26 11:15:37

标签: solr lucene

我们在solr docs中有任何事件的即将到来的日期(comingdate fireld)。我们需要从现在到未来(正确的方向)和从现在到过去(左方向)的DESC排序事件中获取ASC排序事件的结果。我们如何在一个查询中做到这一点?

例如:

enter image description here

结果:NEADH

1 个答案:

答案 0 :(得分:1)

尝试以下排序查询

if(gte(ms(upcomingDate,NOW),0),ms(upcomingDate,NOW),sum(ms(NOW,upcomingDate),4125333600000)) asc

大于或等于现在的所有内容将以升序方式自然排序(N E A在问题描述图中)。 另一方面,所有小于现在的东西都将从NOW中减去并添加到相当于未来日期的millis(我已使用2100年的样本代码)。通过这种方式,您可以实现过去日期的降序排序(问题描述图中的D H)。

总而言之:N E A D H

如果有人想在使用Solr发行版提供的techproducts集合上尝试此查询: if(gte(ms(manufacturedate_dt,2006-02-13T15:26:36Z),0),ms(manufacturedate_dt,2006-02-13T15:26:36Z),sum(ms(2006-02-13T15:26:36Z,manufacturedate_dt),4125333600000)) asc