如何在天蓝色的认知搜索中使用拆分技能?

时间:2020-03-31 12:55:42

标签: azure-cognitive-search azure-blob-storage

我是Azure认知搜索的新手。我有一个docx文件存储在azure blob存储中。我正在使用#Microsoft.Skills.Text.SplitSkill 将文档拆分为多个页面(块)。但是当我索引此文件的输出时技巧,我正在获取整个docx文件的内容。如何从SplitSkill返回“页面”,以便用户看到通过搜索找到的原始文档部分,而不是返回整个文档?

请帮助我。谢谢。

1 个答案:

答案 0 :(得分:0)

拆分技能使您可以将文本拆分为较小的块/页面,然后可以通过其他认知技能对其进行处理。

下面是进行拆分和翻译的简约技能集的样子:

"skillset": [
    {
        "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
        "textSplitMode": "pages",
        "maximumPageLength": 1000,
        "defaultLanguageCode": "en",
        "inputs": [
            {
                "name": "text",
                "source": "/document/content"
            },
            {
                "name": "languageCode",
                "source": "/document/language"
            }
        ],
        "outputs": [
            {
                "name": "textItems",
                "targetName": "mypages"
            }
        ]
    },
    {
        "@odata.type": "#Microsoft.Skills.Text.TranslationSkill",
        "name": "#2",
        "description": null,
        "context": "/document/mypages/*",
        "defaultFromLanguageCode": null,
        "defaultToLanguageCode": "es",
        "suggestedFrom": "en",
        "inputs": [
            {
                "name": "text",
                "source": "/document/mypages/*"
            }
        ],
        "outputs": [
            {
                "name": "translatedText",
                "targetName": "translated_text"
            }
        ]
    }
]

请注意,拆分技能在丰富树的“ \ document \ mypages”节点下生成了一组文本元素。同样不是通过向翻译技能提供上下文“ \ document \ mypages *”来告诉翻译技能在“每个页面”上执行翻译。

我应该指出,尽管如此,文档仍将在文档级别建立索引。并不是真正建立技能集来“改变索引的基数”。也就是说,一种解决方法可能是将每个页面作为单独的元素投影到知识存储中,然后创建一个实际上专注于为每个页面建立索引的单独索引。

在此处了解有关知识库的更多信息: https://docs.microsoft.com/en-us/azure/search/knowledge-store-concept-intro