1

我正在尝试在 solr 中搜索,结果必须先按日期排序,然后按名称字段排序。我能够得到预期的结果,因为日期是这种格式:2012-09-07T13:31:35Z.

查询是这样的:

sort=date+desc,name+desc

我也不希望按时完成排序。

4

2 回答 2

1

您可以在日期使用功能,例如在您的情况下

sort=floor(div(ms(date),86400000))+desc,name+desc

请注意,这需要未将通配符的 dynamicField 设置为忽略,即schema.xml中不应出现以下行,如果是,则需要将其注释掉或使用某些数字类型,然后才能按上述方式排序

<dynamicField name="*" type="ignored" multiValued="true" />
于 2012-10-11T12:42:47.333 回答
0

另一种选择也将将日期部分存储为数字表示(即时间戳,从过去某个日期到文档日期凌晨 12 点的秒数)。
如果您遵循有关时间戳的通用标准,则应该相当容易维护、查询和从时间戳转换为日期,反之亦然。

于 2012-10-11T12:46:30.170 回答