Umbraco Lucene或在多个日期范围内搜索 [英] Umbraco Lucene or search on multiple date ranges

查看:79
本文介绍了Umbraco Lucene或在多个日期范围内搜索的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在使用以下代码:

We are using the following code:

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

which works fine when searching based on a single date within a single date range. What we need however is a search with 2 dates that returns results if either of the dates are within the given date range.

推荐答案

大概您可以在相同范围但不同字段上做进一步的AND:

Presumably you could just do a further AND on the same range but a different field:

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.

This is assuming that the other field is called dateRangeEnd.

这篇关于Umbraco Lucene或在多个日期范围内搜索的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆