Umbraco中的Lucene查询使用OR将两个标准分组 事件从一个日期运行到另一个日期 用户可以搜索从一个日期到另一个日期的所有活动事件 如果事件在用户选择的日期范围内处于活动状态,则应返回事件

Umbraco中的Lucene查询使用OR将两个标准分组 事件从一个日期运行到另一个日期 用户可以搜索从一个日期到另一个日期的所有活动事件 如果事件在用户选择的日期范围内处于活动状态,则应返回事件,lucene,umbraco,lucene.net,Lucene,Umbraco,Lucene.net,我正在使用Lucene(Umbraco) 范例 Sample DB Table with one record in it. --------------------------------------- eventStartDate eventEndDate EventName "23-Nov-2015" "31-Dec-2015" "test Event" 用户标准 var fromDate = "01-Dec-2015" var toDate =

我正在使用Lucene(Umbraco)

范例

 Sample DB Table with one record in it. 
    ---------------------------------------
    eventStartDate  eventEndDate   EventName
    "23-Nov-2015"  "31-Dec-2015"   "test Event"
用户标准

var fromDate = "01-Dec-2015"
var toDate = "31-Dec-2015"
//带有eventStartDate的场景一

var searcher = Examine.ExamineManager.Instance.SearchProviderCollection["Searcher"];
var searchCriteria = searcher.CreateSearchCriteria();
.......
var query = searchCriteria.RawQuery(luceneString).OrderBy("eventStartDate");
query.And().Range("eventStartDate", fromDate, toDate, true, true);

Output Result
{Return nothing}
//带有eventEndDate的场景二

var searcher = Examine.ExamineManager.Instance.SearchProviderCollection["Searcher"];
var searchCriteria = searcher.CreateSearchCriteria();
.......
var query = searchCriteria.RawQuery(luceneString).OrderBy("eventStartDate");
query.And().Range("eventEndDate", fromDate, toDate, true, true); // change is here

Output Result
-------------
"23-Nov-2015"  "31-Dec-2015"   "test Event"
我需要结合以上两种情况,如果其中任何一个是匹配的。 类似这样,但不确定确切的Lucene代码

query.And().(Range("eventStartDate", fromDate, toDate, true, true) OR Range("eventEndDate", fromDate, toDate, true, true))


var result = searcher.Search(query.Compile());

这个不行。其他类似的问题是,您是否在查询中使用了
Execute()
方法?从代码的第一眼来看,这似乎是缺失的。它适用于每个场景。但我需要把这两个部分组合在一起。i、 e.用户选择x到y之间的日期。如果开始事件日期或结束事件日期在x到y之间。它应该显示该记录。在SQL中,可以通过使用()括号轻松完成,但不确定它在lucene中是如何工作的。我尝试使用或组合,但无效。您是否尝试过
GroupedOr
?在中搜索此关键字以了解语法。