Umbraco Lucene或在多个日期范围内搜索 [英] Umbraco Lucene or search on multiple date ranges
本文介绍了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屋!
查看全文