我正在尝试搜索solr,结果必须先按日期排序,然后再按名称字段排序。我能够得到预期的结果,因为日期采用以下格式:2012-09-07T13:31:35Z
。
查询如下:
sort=date+desc,name+desc
我不希望按时完成排序。
答案 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点的秒数)。 如果你遵循时间戳的通用标准,应该相当容易维护,查询和从时间戳转换到日期,反之亦然。