Как индексировать блоб-документ по страницам в Azure Cognitive Search? - PullRequest
0 голосов
/ 12 февраля 2020

Я новичок в Azure Поиск. Я индексирую несколько PDF-документов, используя этот метод Но я хочу получить результаты поиска по страницам. В настоящее время он предоставляет результат для всего документа, но вместо этого я хочу, чтобы результат отображался на каждой странице, и мне также нужно конкретное имя файла и номер страницы, которые имеют наивысшую оценку.

1 Ответ

1 голос
/ 12 февраля 2020

Как вы заметили, при взломе документа по умолчанию весь текст помещается в одно поле (контент). Если у вас есть навык 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"
    }
  ]
},

Единственный способ, который я знаю, - это использовать пользовательский навык , которая будет находиться в функции Azure и вызываться как часть конвейера набора навыков документа. Внутри этой функции Azure вам придется использовать программу чтения PDF, например iText7, и самостоятельно открывать документы и возвращать данные, которые вы поместите в индексный документ в виде массива текста или пользовательских объектов.

Мы собирались go завершить пользовательский процесс взлома с клиентом (не для этого, а по другим причинам), но проект был законсервирован из-за стоимости хранения больших объемов данных в индексе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...