Azure 搜索 - 条件字段映射

Azure Search - Conditional Field Mapping

所以这是我的问题。 我正在构建一个索引,其中的数据源是一个充满文档(docx、pptx、txt、pdf)的 blob 存储 这些文件使用不同的语言(确切地说是 2 种语言,荷兰语 (nl) 和英语 (en))。

为了检测语言,我使用了其中一个内置技能集,returns 我用语言代码输出了一个新的输出。

我想做的是根据语言将文档的文本映射到一个字段。 因此,如果文档包含英文文本,则需要转到 [text_en] 字段,如果是荷兰语文本,则需要将其映射到 [text_nl] 字段。

我该怎么做? 有人知道吗?

截至 2019 年 4 月,Azure 添加了一项名为“Conditional”的新内置技能。

它允许您指定布尔条件(例如“= $(/document/language) == 'nl'”)和 return 基于结果的值,静态或链接到文档树的一个节点。

对于你的情况,它看起来像这样,

{
"@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
"context": "/document",
"inputs": [
    { "name": "condition", "source": "= $(/document/language) == 'nl'" },
    { "name": "whenTrue", "source": "/document/content" },
    { "name": "whenFalse", "source": "= null" }
],
"outputs": [ { "name": "output", "targetName": "text_nl" } ]
}

您需要为每种语言定义一项条件技能。