【问题标题】:Skill output mapping to Edm.DateTimeOffset field技能输出映射到 Edm.DateTimeOffset 字段
【发布时间】:2021-01-16 20:16:03
【问题描述】:
Azure 认知搜索中是否可以将技能输出映射到 DateTimeOffset 字段?
收到错误:
技能回报:
{
“价值观”:[
{
"recordId": "0",
“数据”: {
“日期”:“2020-09-25T04:00:00.0000000Z”
},
“错误”:空,
“警告”:空
}
]
}
索引器映射技能输出
“输出字段映射”:
[
{
"sourceFieldName": "/document/message_date",
“targetFieldName”:“message_date”
}
]
其中 message_date 定义为
{
"name": "message_date",
"type": "Edm.DateTimeOffset",
“可排序”:是的,
“可搜索”:错误,
“可过滤”:是的,
“面”:假
},
获取索引器错误:
文档中具有键“NA_0138373324”的数据字段“message_date”具有“Edm.String”类型的无效值(JSON 字符串映射到 Edm.String)。预期的类型是“Edm.DateTimeOffset”
如何强制索引器将其转换为日期?没有这样的映射功能
【问题讨论】:
标签:
azure-cognitive-search
【解决方案1】:
以 OData V4 格式表示的日期和时间值:yyyy-MM-ddTHH:mm:ss.fffZ 或 yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm。 DateTimeOffset 字段的精度限制为毫秒。 如果您上传 DateTimeOffset 亚毫秒精度的值,返回的值将向上舍入到毫秒(例如,2015-04-15T10:30:09.7552052Z 将返回为 2015-04 -15T10:30:09.7550000Z)。将带有时区信息的 DateTimeOffset 值上传到索引时,Azure 认知搜索会将这些值标准化为 UTC。例如,2017-01-13T14:03:00-08:00 将存储为 2017-01-13T22:03:00Z。如果您需要存储时区信息,则需要在索引中添加一个额外的字段。
您可以将日期时间格式更改为:
yyyy-MM-ddTHH:mm:ssZ
例如:"date": "2020-09-25T04:00:00Z"