Azure搜索正在返回带有日期筛选器的无效表达式



我在Azure搜索中遇到了一个问题,这个问题以前有效,但现在有效正在接收无效表达式。我是不是错过了什么。过滤器文件的日期类型-

{"name":"ModifiedDateTime","type":"编辑日期时间偏移量","可搜索":false,"可过滤":true,"facetable":true,"可排序":true}

在此处输入图像描述

Api版本=2016-09-01预览

请求-

{"queryType":"full","searchMode":"all","filter":"ModifiedDateTime ge 2018-12-12","search":null,"searchFields":null、"count":true}

错误-

{"错误":{"代码":","message":"无效表达式:找到了不受支持的数据类型"Date"的文本"2018-12-12"。请使用与表达式中字段类型匹配的文本。\r\n参数名称:$filter"}}

此错误是由已修复的回归引起的。只有美国中西部的搜索服务受到影响。

我们遗漏了这个案例的测试覆盖范围,实际上我们从未打算支持它。尽管我们已经修复了这一问题以避免破坏向后兼容性,但在未来的API版本中,我们可能会取消在过滤器中使用Edm.Date文字的功能。

在与日期进行比较时,您应该始终包括时间和偏移部分。否则,你如何决定一天何时开始,下一天又何时开始?我们假设普通日期为UTC午夜,但这种假设可能对您的用户无效。

我们建议在Edm.DateTimeOffset字段上写这样的过滤器:

ModifiedDateTime ge 2018-12-12T00:00:00Z

Z表示UTC,Azure Search将所有DateTimeOffset值标准化为UTC。

最新更新