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