使用索引器在 Azure 搜索服务中创建集合

Creating Collection in Azure Search Service using Indexer

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

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

2016 年 10 月 17 日更新:Azure 搜索现在自动将来自数据库的字符串转换为集合 (Edm.String) 字段 if数据表示 JSON 字符串数组: 例如,["blue", "white", "red"]

旧回复: 很好的时机,我们刚刚添加了一个新的 "field mappings" 功能,允许您执行此操作。此功能将在下周初的某个时间部署。当它在所有数据中心推出时,我将 post 对此线程发表评论。

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

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

注意:您需要使用 API 版本 2015-02-28-Preview 添加字段映射。

HTH, 尤金