Поиск по разделам документа

Для поиска в определенных разделах документа (заголовках, таблицах, списках, оглавлении) используется функция docpart().

Синтаксис

docpart(раздел[, аргумент_1, [аргумент_2, …]])

Необходимый раздел должен быть указан в качестве первого параметра функции. Функция поддерживает поиск по следующим разделам:

Раздел

Пояснение

Поддерживаемые атрибуты

Атрибут

Пояснение

table_of_contents/contents/toc

оглавление

heading

заголовок

1. level

уровень заголовка: [1, 6], 1 — заголовок высшего уровня, 6 — заголовок низшего уровня

list

список

1. number

номер списка в документе

2. type (ordered, unordered, bulleted)

тип списка (нумерованный, ненумерованный, маркированный)

3. item

номер элемента в списке

4. level

уровень списка: [1, 6], 1 — список высшего уровня, 6 — список низшего уровня

list_item

элемент списка

1. number

номер элемента в списке

table

таблица

1. name

имя таблицы

2. number

номер таблицы в документе

3. column/col

имя/номер колонки в таблице

4. col_number

номер колонки в таблице

5. row

имя/номер строки в таблице

6. row_number

номер строки в таблице

row

строка таблицы

1. name

имя строки

2. number

номер строки в таблице

column/col

колонка таблицы

1. name

имя колонки

2. number

номер колонки в таблице

cell

ячейка таблицы

table_name

имя таблицы

section

раздел

1. name

имя раздела; может быть PDL-запросом

2. whole (yes/no)

поиск имени раздела целиком или частично; по умолчанию whole:=no

3. level

уровень раздела, соответствует уровню заголовка

4. field (body/heading/any)

поиск в теле/заголовке/теле и заголовке раздела; по умолчанию field:=any.

mail

раздел электронного письма

1. sender

Отправитель письма.

2. recipient

Получатель письма.

3. copy

Получатели письма в копии.

4. subject

Тема письма.

5. opening

Обращение.

6. closing

Заключение.

7. signature

Подпись.

8. body

Тело письма.

9. date_time

Дата и время письма.

10. forwarded:yes/no

Определяет, является ли письмо пересылаемым.

page

Страница/диапазон страниц

number

Номер страницы или диапазон страниц, если задано два параметра.

hyperlink

интернет-ссылка

Функция также может принимать опциональный параметр ocr, который позволяет находить документы, содержащие слова с высокой достоверностью распознавания OCR-модулем PolyAnalist, а также его именованный параметр confidence, который задает порог достоверности распознавания.

Примечание

  1. Для поиска по нескольким разделам следует перечислить их через «|».

  2. Если указана только секция документа, функция находит все секции указанного типа.

  3. Для ограничения поиска внутри числовых параметров можно использовать операторы сравнения «>», «<», «>=», «<=», «!=», например, docpart(table, col:>1, col:<3, row:>1).

  4. Функция docpart() ищет пересечение запроса с разделами таблицы или со страницами, заданными параметром number соответственно. Таким образом, запрос может лишь частично находиться в указанных разделах таблицы или на указанных страницах.

  5. Атрибут number параметра page может принимать отрицательное значение. В таком случае он отсчитывается от последней страницы в документе, т.е. number:"-1" ограничивает запрос последней страницей, number:>="-2" ограничивает запрос последними двумя страницами.

  6. Параметр hyperlink ищет гиперссылки только в html-страницах. Для его корректной работы необходимо выполнить узел «Интернет», а затем присоединить к нему тот узел, в котором будут использоваться полученные результаты.

  7. В таблице ниже представлено, в каком формате поддерживается поиск по конкретным разделам.

Раздел

Поддерживаемые форматы

contents

docx, odt

heading

docx, html, odt, pptx, ppt, rtf

list

docx, html, odt, pptx

table

docx, doc, html, odt, pptx, ppt, pdf, rtf

section

docx, html, odt, pptx, ppt, rtf

page

docx, pdf

Пример

docpart(contents, аудиторская проверка) найдет упоминание «аудиторской проверки» в содержании;

docpart(heading, прибыль) найдет слово «прибыль» только в заголовках;

docpart(table, прибыль) найдет слово «прибыль» только в таблицах;

docpart(heading|table, прибыль) найдет слово «прибыль» в заголовках и таблицах;

docpart(heading, level:=1) найдет заголовки высшего уровня в документе;

docpart(table_name) найдет имена таблиц;

docpart(list) найдет все списки в документе;

docpart(list, type:=unordered) найдет все ненумерованные списки в документе;

docpart(list, type:=ordered) найдет все нумерованные списки в документе;

docpart(list, type:=bulleted) найдет все маркированные списки в документе;

docpart(list, number:=3, item:=2) найдет второй элемент в третьем списке документа;

docpart(list_item, number:=5) найдет пятый элемент в каждом списке документа.

docpart(section, конфиденциальность, field:=body) найдет слово «конфиденциальность» во всех разделах, но не в заголовках.

docpart(section, финансирование, name:=глава) найдет слово «финансирование» в разделах, содержащих в названии слово «глава».

docpart(section, name:=phrase(глава, number()), whole:=yes) найдет разделы с именами «глава 1», «глава 2», но например, не «новая глава 1».

docpart(section, информация, level:=2) = docpart(heading, информация, level:=2) найдет слово «информация» в заголовках второго уровня.

docpart(mail, field:=subject) найдет "Subject: RE: Запрос по закупке товара" в структуре электронного письма.

docpart(mail, forwarded:=yes) найдет в датасете пересылаемые сообщения.

docpart(mail, field:=copy) найдет получателей в копии, cc: Belkina Elena; Loseva Lena.

docpart(page) находит все страницы документа.

docpart(page, number:=1) находит и подсвечивает первую страницу документа.

docpart(page, <pdl-запрос>) находит позиции <pdl-запроса> в пределах одной страницы.

docpart(page, договор, аренда, number:=1) находит любой из аргументов «договор» и «аренда» на первой странице.

docpart(page, договор, number:=1) находит слово «договор» на первой странице.

docpart(page, договор, number:="-1") находит слово «договор» на последней странице.

docpart(page, подпись, number:!=1) находит слово «подпись» не на первой странице.

docpart(page, сумма, number:>=2, number:<=) находит слово «сумма» на второй и третьей странице.

docpart(hyperlink) находит все гиперссылки в документе.

docpart(hyperlink, "пролив") находит гиперссылки, содержащие слово «пролив».

Пример задачи: найти «аудит» в оглавлении документа

Для решения этой задачи можно написать запрос docpart(contents, аудит), который найдет четыре упоминания слова «аудит» в содержании:

pdl docpart 1 rus