使用Indexer在Azure Search Service中创建集合

时间:2015-04-16 13:55:41

标签: sql json azure azure-sql-database azure-search

我正在使用索引器将数据从我的SQL数据库同步到Azure搜索服务。我的SQL视图中有一个字段,其中包含XML数据。列包含字符串列表。我在集合中的Azure搜索服务索引(Edm.String)中的相应字段。 在检查某些文档时,我发现Indexer不会将Xml(SQL)更改为Collection(Azure搜索)。 有关如何从Xml数据创建Collection的任何解决方法吗?

p.s我正在从View中提取数据,因此如果需要,我可以将Xml更改为JSON。

1 个答案:

答案 0 :(得分:3)

2016年10月17日更新:如果数据代表JSON字符串数组,Azure Search现在会自动将来自数据库的字符串转换为Collection(Edm.String)字段:< / strong>例如,["blue", "white", "red"]

旧回复:很棒的时机,我们刚刚添加了一个新的“字段映射”功能,可以让您这样做。该功能将在下周初的某个时间部署。我将在所有数据中心推出此帖子后发表评论。

要使用它,您确实需要使用JSON。确保源列包含JSON数组,例如[“hello”“world”]。然后,更新索引器定义以包含新的fieldMappings属性:

"fieldMappings" : [ { "sourceFieldName" : "YOUR_SOURCE_FIELD", "targetFieldName" : "YOUR_TARGET_FIELD", "mappingFunction" : { "name" : "jsonArrayToStringCollection" } } ]

注意:您需要使用API​​版本2015-02-28-Preview添加fieldMappings。

HTH, 尤金