Поиск по нескольким колонкам

По умолчанию PDL-запросы выполняются для колонки, выбранной в узле Индекс. Однако пользователи могут выбрать другую текстовую колонку для поиска. Для этого необходимо указать название колонки после запроса, используя синтаксис @[Название колонки].

Этот синтаксис применяется только к текстовым колонкам. Информацию о том, как выполнять поиск в нетекстовых колонках, см. в разделе Использование языка SRL в PDL-запросах.

Названия колонок чувствительны к регистру и должны быть заключены в квадратные скобки, если они содержат пробелы.

Примеры

"всероссийская акция"@Title = "всероссийская акция"@[Title] находит словосочетание «всероссийская акция» в столбце Title;

"динамик"@[Отзывы клиентов] находит документы из столбца «Отзывы клиентов», если в них упоминаются динамики;

"динамик"@Отзывы клиентов - некорректный запрос, потому что название колонки содержит пробелы и должно быть заключено в квадратные скобки.

Пример задачи: Анализ отзывов на автомобили

Проанализируем отзывы на автомобили. Например, у нас есть датасет из двух колонок («Достоинства» и «Недостатки»), а колонка «Достоинства» задана в узле «Индекс» как выбранная текстовая колонка:

pdl multicol 1 rus

По умолчанию pdl-запросы будут выполняться для заданной индексируемой колонки «Достоинства». Чтобы выполнить поиск в колонке «Недостатки», нужно задать ее в поле поиска с помощью выражения @ИмяКолонки.

Так, чтобы найти отзывы, где покупатели жаловались на расход топлива, можно написать такой запрос:

pdl multicol 2 rus

Если поисковый запрос состоит из нескольких аргументов, соединенных операторами OR, AND, NOT, AND NOT или XOR, то для каждого подзапроса, введенного оператором, можно задать свою колонку. Такой синтаксис позволяет производить поиск по нескольким колонкам в рамках одного запроса.

Пример задачи: Анализ отзывов на автомобили

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

pdl multicol 3 rus

Запрос состоит из двух подзапросов:

  1. "салон or багажник" ищет в текстовой колонке, заданной в узле «Индекс по умолчанию», т.е. в колонке «Достоинства».

  2. "(phrase(плохой, partofspeech(noun)) or phrase(partofspeech(noun), плохо, partofspeech(verb)))@[Недостатки]" ищет в колонке «Недостатки».

Запрос находит отзывы со словами салон или багажник в колонке «Достоинства» и фразами типа «плохая шумоизоляция» или «дверь плохо регулируется» в колонке «Недостатки».