3

我了解 Lucene.net 如何用于文本索引。我能否根据给定的日期范围有效地搜索文档?或者 Lucene.net 会只使用文本匹配来匹配日期吗?

4

2 回答 2

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 年的所有日期)。

于 2008-11-20T11:02:41.603 回答
1

当我将日期转换为yyyymmddHHmmssff. 当我尝试对数据进行排序时,它给了我一个太大而无法转换的异常。因此我搜索并发现你需要有两列。一中一yyyymmddHHmmss然后用Sort[],给这两列再用。这将解决问题。

于 2010-08-13T04:07:31.933 回答