Umbraco Lucene或搜索多个日期范围

时间:2013-09-16 02:37:22

标签: c# lucene umbraco

我们使用以下代码:

var searcher = ExamineManager.Instance
                             .SearchProviderCollection[SearchProviderName];

var criteria = searcher.CreateSearchCriteria();

q = q.And()
     .Range("dateRangeStart", 
       startRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
       endRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
        true, true)
          );

criteria = q.Compile();
var searchResult = searcher.Search(criteria).AsEnumerable();

在基于单个日期范围内的单个日期进行搜索时工作正常。然而,我们需要的是一个带有2个日期的搜索,如果其中一个日期在给定的日期范围内,则返回结果。

1 个答案:

答案 0 :(得分:0)

据推测,你可以在相同的范围内进行更多的AND,但是不同的领域:

q = q.And()
 .Range("dateRangeStart", 
   startRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
   endRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
   true, true)
 .And().Range("dateRangeEnd", 
   startRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
   endRange.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture), 
   true, true);

这假设另一个字段被称为dateRangeEnd