3

我们正在使用以下代码:

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 个日期的搜索,如果其中一个日期在给定的日期范围内,则返回结果。

4

1 回答 1

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

于 2013-09-16T16:44:45.933 回答