Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Lucene.net中使用日期范围_Lucene_Lucene.net - Fatal编程技术网

在Lucene.net中使用日期范围

在Lucene.net中使用日期范围,lucene,lucene.net,Lucene,Lucene.net,我了解Lucene.net如何为文本索引工作。我是否能够根据给定的日期范围高效地搜索文档?或者Lucene.net会使用文本匹配来匹配日期吗?Lucene.net会使用文本匹配,因此在添加到索引之前,您需要正确设置日期的格式: public static string Serialize(DateTime dateTime) { return dateTime.ToString("yyyyMMddHHmmss", CultureInfo.InvariantCult

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

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

当我将日期转换为
yyymmddhhmmssff
时遇到了麻烦。当我尝试对数据进行排序时,它给了我一个异常,异常太大,无法转换。因此,我搜索并发现,然后你需要有两列。一个在
yyyymmdd
中,另一个在
HHmmss
中,然后使用
Sort[]
并给出这两列,然后使用。这将解决问题。

我对lucene知之甚少甚至一无所知,因为我只是想自学,但这个答案让我犹豫了一段时间,因为datetime缺少毫秒,您希望(我确实做到了)“yyyymmddhhmmssff”小心在maxClauseCount(默认值1024)上遇到问题随着RangeQuery在封面下扩展为包含所有匹配项的布尔查询,或者将所有匹配项合并在一起。有了日期(因为它们被编入了文本索引),术语的数量会迅速增加。看见