Solr:对多个字段进行排序,其中一个是日期

时间:2012-10-11 09:50:47

标签: xml solr

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

查询如下:

sort=date+desc,name+desc

我不希望按时完成排序。

2 个答案:

答案 0 :(得分:1)

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

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

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

<dynamicField name="*" type="ignored" multiValued="true" />

答案 1 :(得分:0)

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