gpt4 book ai didi

Sitecore 日期比较未返回预期结果

转载 作者:行者123 更新时间:2023-12-04 03:12:08 24 4
gpt4 key购买 nike

我正在尝试使用可查询查询返回类(class)列表,但在某些日期比较方面遇到了问题。

我目前正在使用代码

query = query.Where(r => r.EndDate >= DateTime.UtcNow);

它会返回 future 日期的类(class),但它不会返回在同一天结束且时间晚于 DateTime.UtcNow 返回的时间的类(class)。

知道我做错了什么吗?

我刚刚使用 Luke 来检查索引,如果我使用

end_date:[20170531t092205609z TO *]

我得到了我需要的确切结果,但是在实际查询使用的日志中

+end_date:[20170531t092205609z TO *] +_template:a84b75fccac64eafa746f4b71e628adc - Filter : 

然后我得到更多结果,包括我错过的类(class)。

a) 为什么我使用第二个查询得到更多结果?
b) 为什么在我的 C# 代码中返回的结果与搜索结果不匹配?

最佳答案

遇到了类似的问题并在此处描述了我们的解决方案:https://ggullentops.blogspot.be/2015/12/sitecore-lucene-index-and-datetime.html .

我们的问题有两个原因:

  • 第一个原因是 Sitecore 以 UTC 存储其日期时间(与我们本地时间相差一个小时)
  • 第二个原因是 Sitecore 在查询中将日期中的“t”用作小写字母。然而,在我的索引中,它们都是大写的。如果我尝试使用 Luke 进行查询,它确实会给我错误的结果。当我将 Luke 中的查询更改为使用大写字母 T 时,它可以正常工作。

我们找到的最简单的解决方案是索引配置中的格式属性:

<field fieldName="datefrom" storageType="YES" indexType="UNTOKENIZED" vectorType="NO" boost="1f" 
format="yyyyMMdd" type="System.DateTime"
settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider"/>

(注意格式=“...”)

关于Sitecore 日期比较未返回预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44280941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com