简单直接的问题: 是否可以根据创建顺序/日期对搜索结果进行排序?添加日期字段并按其排序是一种选择。 但是,索引已经存在,并且包含大量文档,我想对其进行排序(某些)。
答案 0 :(得分:2)
不使用docID进行任何操作(除了在查询后获取文档)。 不顺序,如果您进行更新(实际上是删除然后添加),则不一定稳定。
只需添加一个表示日期的字段,然后按查询中的排序进行排序。
将其设为数字字段,并将数字格式化为yyyyMMddhhmmss。如果您需要较低的精度,只需从右侧删除一些数字。或者,如果您想要更好的精度,只需存储刻度值。
扩展方法FTW!
public static long AsYMDHMS(this DateTime date)
{
return
(date.Year * 10000000000) +
(date.Month * 100000000) +
(date.Day * 1000000) +
(date.Hour * 10000) +
(date.Minute * 100) +
date.Second;
}