我正在尝试使用iqueryable查询返回课程列表,但是我遇到了一些日期比较的问题。
我目前正在使用该代码
query = query.Where(r => r.EndDate >= DateTime.UtcNow);
返回将来会有日期的课程,但是它不会返回在同一天结束的课程,其结束时间晚于DateTime.UtcNow返回的时间。
我有什么想法我做错了吗?
我刚刚用Luke来检查索引,如果我使用的话
end_date:[20170531t092205609z TO *]
我得到了我需要的确切结果,但是在实际查询使用的日志中
+end_date:[20170531t092205609z TO *] +_template:a84b75fccac64eafa746f4b71e628adc - Filter :
然后我得到更多的结果,包括我失踪的课程。
a)为什么我使用第二个查询得到更多结果? b)为什么在我的C#代码中返回的结果与搜索结果不匹配?
有一个类似的问题,并在这里描述我们的解决方案:https://ggullentops.blogspot.be/2015/12/sitecore-lucene-index-and-datetime.html。
我们的问题有两个原因:
我们发现最简单的解决方案是索引配置中的format属性:
<field fieldName="datefrom" storageType="YES" indexType="UNTOKENIZED" vectorType="NO" boost="1f"
format="yyyyMMdd" type="System.DateTime"
settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider"/>
(注意格式=“......”)