我正在尝试使用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#代码中返回的结果与搜索结果不匹配?
答案 0 :(得分:1)
有一个类似的问题并在此处描述了我们的解决方案:https://ggullentops.blogspot.be/2015/12/sitecore-lucene-index-and-datetime.html。
我们的问题有两个原因:
我们找到的最简单的解决方案是索引配置中的格式属性:
<field fieldName="datefrom" storageType="YES" indexType="UNTOKENIZED" vectorType="NO" boost="1f"
format="yyyyMMdd" type="System.DateTime"
settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider"/>
(请注意格式=“......”)