是否可以通过创建 sequence/date 对 Lucene 搜索结果进行排序?
Is it possible to sort Lucene search results by creation sequence/date?
简单直接的问题:
是否可以根据创建结果对搜索结果进行排序 sequence/date?添加一个日期字段并按它排序是一种选择。
但是,索引已经存在并且包含大量我想排序的文档(一些)。
不要将 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;
}
简单直接的问题: 是否可以根据创建结果对搜索结果进行排序 sequence/date?添加一个日期字段并按它排序是一种选择。 但是,索引已经存在并且包含大量我想排序的文档(一些)。
不要将 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;
}