Azure 认知搜索索引 int64 不接受字符串值

Azure Congnitive Seach index int64 does not accept string value

我正在使用 Python Azure 应用程序函数将数据从 SQLServer 数据库复制到 Azure 认知搜索索引。我看到的问题是有一些 nvarchar 字段包含我试图放入索引中的 Edm.int64 字段的数字数据。文档指出这应该有效:

https://docs.microsoft.com/en-us/rest/api/searchservice/data-type-map-for-indexers-in-azure-search#bkmk_sql_search

但是,我得到一个错误——“无法将值转换为目标类型 'Edm.Int64',因为输入格式 string/number 和参数 'IEEE754Compatible' false/true 之间存在冲突”。

将带有数字的字符串复制到 Edm.int32 索引字段时有效....

还有其他人encountered/solved遇到过这个问题吗? 谢谢!

您收到错误消息是因为您尝试从 varchar 转换为 Edm.int32 索引字段,而这不受支持。

根据 https://docs.microsoft.com/rest/api/searchservice/data-type-map-for-indexers-in-azure-search#bkmk_sql_search,您只能将 intsmallinttinyint 类型转换为 Edm.int32

在转换table中你会发现charncharvarcharnvarchar只能转换为Edm.String 要么 Collection(Edm.String).

您可以将索引字段设置为 Edm.String 类型,然后在您的客户端应用程序代码中将字符串相应地转换为 int 一旦内容被索引以操纵响应类型。

希望对您有所帮助。