我是Azure搜索的新手。我正在使用this method为少量pdf文档编制索引 但是,我想按页面获取搜索结果。它当前正在提供整个文档的结果,但我希望从每个页面显示结果,而不是它,我还需要具有最高分数的特定文件名和页码。
答案 0 :(得分:1)
您已经注意到,默认情况下,文档破解会将所有文本推入一个字段(内容)中。如果您具有OCR技能(假设PDF中包含文本的图像),则默认情况下,它在merged_content中执行相同的操作。我不认为有一种方法可以强制这两项任务将您的数据分解为多个页面。
我之所以说“相信”,是因为很难找到输入到技能组中的文档对象形状的文档。例如,查看此合并技能组的输入。它使用/ document / content和其他与文档相关的数据,并将其全部推送到称为merged_content的字段中。如果您可以在文档中的所有字段上找到文档,则可能会使您的页面损坏。
{
"@odata.type": "#Microsoft.Skills.Text.MergeSkill",
"name": "#BookMergeSkill",
"description": "Some description",
"context": "/document",
"insertPreTag": " ",
"insertPostTag": " ",
"inputs": [
{
"name": "text",
"source": "/document/content"
},
{
"name": "itemsToInsert",
"source": "/document/normalized_images/*/text"
},
{
"name": "offsets",
"source": "/document/normalized_images/*/contentOffset"
}
],
"outputs": [
{
"name": "mergedText",
"targetName": "merged_content"
}
]
},
我知道解决此问题的唯一方法是使用custom skill,它将驻留在Azure函数中,并被称为文档技能组管道的一部分。在该Azure函数内部,您将必须使用PDF阅读器(例如iText7),然后自己打开文档并返回以文本或自定义对象的数组形式放置在索引文档中的数据。
我们打算与客户进行自定义的破解过程(不是这样做,而是出于其他原因),但是由于在索引中保存大量数据的成本,该项目被取消了。