我理解Lucene.net如何用于文本索引。我能否根据给定的日期范围有效搜索文档?或者Lucene.net会使用文本匹配来匹配日期吗?
答案 0 :(得分:6)
Lucene.Net将只使用文本匹配,因此您需要在添加到索引之前正确格式化日期:
public static string Serialize(DateTime dateTime)
{
return dateTime.ToString("yyyyMMddHHmmss", CultureInfo.InvariantCulture);
}
public static DateTime Deserialize(string str)
{
return DateTime.ParseExact(str, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
}
然后,您可以执行基于范围的查询以按日期过滤(例如,2006 *至2007 *,以包括2006年和2007年的所有日期)。
答案 1 :(得分:1)
当我将日期转换为yyyymmddHHmmssff
时,我遇到了麻烦。当我尝试对数据进行排序时,它给了我一个例外,它太大了,无法转换。因此我搜索并找到你需要有两列。一个在yyyymmdd
而另一个HHmmss
,然后使用Sort[]
并提供这两列,然后使用。这将解决问题。