定义投影

已完成

要存储在知识存储中的数据的投影基于索引过程中扩充管道生成的文档结构。 技能组中的每项技能都以迭代方式为要编制索引的文档生成丰富数据的 JSON 表示形式,并且可以将文档中的部分或全部字段作为投影保留。

使用“形状绘制”技能

增量编制索引的过程将创建一个复杂的文档,其中包含技能组中技能的各个输出字段。 这可能会导致架构难以使用,导致架构包括不能轻松映射到格式正确的 JSON 的基元数据值的集合。

为了将这些字段值轻松映射到知识库中的投影,通常使用“形状绘制”技能来创建一个新字段,该新字段包含要映射到投影的字段的更简单结构。

例如,考虑下面的“形状绘制”技能定义:

{
  "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
  "name": "define-projection",
  "description": "Prepare projection fields",
  "context": "/document",
  "inputs": [
    {
      "name": "file_name",
      "source": "/document/metadata_content_name"
    },
    {
      "name": "url",
      "source": "/document/url"
    },
    {
      "name": "sentiment",
      "source": "/document/sentimentScore"
    },
    {
      "name": "key_phrases",
      "source": null,
      "sourceContext": "/document/merged_content/keyphrases/*",
      "inputs": [
        {
          "name": "phrase",
          "source": "/document/merged_content/keyphrases/*"
        }
      ]
    }
  ],
  "outputs": [
    {
      "name": "output",
      "targetName": "projection"
    }
  ]
}

此“形状绘制”技能创建了具有以下结构的“投影”字段:

{
    "file_name": "file_name.pdf",
    "url": "https://<storage_path>/file_name.pdf",
    "sentiment": 1.0,
    "key_phrases": [
        {
            "phrase": "first key phrase"
        },
        {
            "phrase": "second key phrase"
        },
        {
            "phrase": "third key phrase"
        },
        ...
    ]
}

生成的 JSON 文档的格式正确,并且与通过扩充管道中的先前技能以迭代方式生成的更复杂文档相比,它更容易映射到知识存储中的投影。