是否可以按创建顺序/日期对Lucene搜索结果进行排序?

时间:2016-03-02 10:45:07

标签: lucene lucene.net

简单直接的问题: 是否可以根据创建顺序/日期对搜索结果进行排序?添加日期字段并按其排序是一种选择。 但是,索引已经存在,并且包含大量文档,我想对其进行排序(某些)。

1 个答案:

答案 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;
    }