【问题标题】:Create Collection in Azure Search Service Using View使用 View 在 Azure 搜索服务中创建集合
【发布时间】:2015-12-23 12:52:49
【问题描述】:

我正在尝试使用导入数据工具创建索引。

数据源来自 azure sql 的视图。

SELECT
b.Name,
b.ID
(SELECT
'[' + STUFF((
    SELECT
        ',{"name":"' + p.Name + '"}'
    FROM Product p WHERE p.Brand = b.ID
    FOR XML PATH (''), TYPE)
.value('.', 'nvarchar(max)'), 1, 1, '') + ']') AS TAry, 
b.IsDelete,
b.ModifyDatetime
from Brand b

带有 TAry 的列将返回 JSon 格式字符串,如: [{"name":"Test1"},{"name":"Test2"}]

在带有字段 TAry 的 Indexder 属性中选择类型 Collection(Edm.String)

创建后,返回错误,提示如下:

“数据字段 'TAry' 的值无效。预期的类型是 'Collection(Edm.String)'。”

感谢您的回复。

我尝试过这种格式:[Test1","Test2"] 还是不行。

【问题讨论】:

    标签: azure sql-view azure-cognitive-search


    【解决方案1】:

    为此,您需要使用 Azure 搜索 REST API 使用 jsonArrayToStringCollection 函数设置字段映射。详细说明请查看this article。

    【讨论】:

    • 另外,字符串的格式必须是字符串字面量数组:["red", "blue", "green"]
    • 首先感谢您的回答。我已经尝试过这个解决方案。和索引构建成功。但是,我有一些问题。 1. 如果我将字段 TAry 设置为 EDM.String ,使用 mappingFunction 的映射是否仍然有效? 2.设置字段映射是完成这个的最后一个动作吗? 3. Collection(Edm.String) 是否可搜索?
    • 1. jsonArrayToStringCollection 产生一个字符串集合,所以它的目标字段必须是一个字符串集合。 2. 应该是 3. 是的
    猜你喜欢
    • 1970-01-01
    • 2021-06-07
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 2021-07-24
    • 2019-03-01
    • 1970-01-01
    相关资源
    最近更新 更多