Поиск с помощью булевых логических операторов

Один из способов удовлетворения сложных запросов - использование булевых логических операторов AND, OR и NOT. Они являются эквивалентами пересечения, объединения и исключения. Эти три оператора в той или иной форме можно найти практически во всех информационно-поисковых системах. С помощью оператора AND поиск сужается организацией набора, чьи элементы являются общими для обоих наборов искомых компонентов. Например, запрос ПРИНТЕР AND ДИСПЛЕЙ будет выполняться с набором документов, содержащим термин ПРИНТЕР, и с другим набором, содержащим термин ДИСПЛЕЙ. В результате будут выданы записи, каждая из которых содержит и термин ПРИНТЕР, и термин ДИСПЛЕЙ. Записи, содержащие только термин ПРИНТЕР, выданы не будут, так же как и записи, содержащие только термин ДИСПЛЕЙ.

Напротив, при формулировании выражения ПРИНТЕР OR ДИСПЛЕЙ будут выданы документы, содержащие хотя бы один из указанных терминов.

В случае, если выражение сформулировано как ПРИНТЕР NOT ДИСПЛЕЙ, будут выданы документы, содержащие термин ПРИНТЕР, и притом только те из них, в которых не содержится термин ДИСПЛЕЙ.

Используя логические операторы в сложных сочетаниях, необходимо учитывать, что существует общий порядок предпочтения (организации их выполнения), то есть сначала выполняется оператор NOT, затем - AND, а потом - OR.

Большинство систем также поддерживают возможность сложного комбинирования булевых операторов подобно выполнению арифметических операций со скобками. При этом сначала выполняются операции внутри скобок, а затем - между скобками. Таким образом, при обработке выражения (ДИСПЛЕЙ OR ПРИНТЕР) AND (CANON OR SUMSUNG) сначала будут сформированы отдельно набор документов, содержащих информацию о принтерах или дисплеях, и отдельно набор документов, содержащих информацию о фирмах, а затем с этими двумя наборами документов будет произведена операция AND, т.е. в результате будет выдан набор документов, содержащих информацию только о тех принтерах или дисплеях, которые были выпущены фирмами CANON или SUMSUNG.

В некоторых системах поддерживается использование более одного уровня сложного комбинирования (группировка). Группировка позволяет заключать очень сложные запросы в одно поисковое выражение, например (ПРИНТЕРЫ AND (ЛАЗЕРНЫЕ OR СТРУЙНЫЕ) OR ДИСПЛЕИ AND (ЦВЕТНЫЕ OR МОНОХРОМНЫЕ)) AND (CANON OR SUMSUNG). В отдельных системах количество уровней группировки может быть ограничено.

Изредка встречается использование других булевых операторов, таких как XOR (исключающее OR), когда ищутся термины, содержащиеся в том или ином документе, но не оба термина в одной и той же записи. Это эквивалентно операции (ТЕРМИН1 OR ТЕРМИН2) NOT (ТЕРМИН1 AND ТЕРМИН2).

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

· очень трудно определить, насколько будет варьироваться „глубина" поиска для выдачи большего или меньшего количества информации;

· выдача — это процесс, выражаемый фразой „все или ничего", и частичное соответствие не поддерживается. Невозможно установить критерий выдачи, если говорить об уровне соответствия запроса и документов;

· выдача не может быть представлена в определенном порядке по степени уменьшения соответствия выданных документов запросу.

Поиск с помощью создания наборов и пошагового сужения области поиска

Создание наборов является важной функцией поиска в ИПС. Указатели на записи, удовлетворяющие данному поисковому запросу, рассматриваются как набор, определенный с помощью поискового запроса. Создание наборов позволяет проводить пошаговый поиск: сначала создание наборов, затем их обработка, затем комбинирование обработанных наборов и работа с ними до тех пор, пока результаты поиска не будут удовлетворительными.

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

Система, не поддерживающая сложное комбинирование или группировку булевых операторов, запрос о принтерах, дисплеях и фирмах может выполнить пошагово следующим образом: ПРИНТЕР OR ДИСПЛЕЙ -> НАБОР1, CANON OR SUMSUNG -> НАБОР2, НАБОР1 AND НАБОР2 -> НАБОРЗ.

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

ПРИНТЕР -> НАБОР1

ДИСПЛЕЙ -> НАБОР2

CANON -> НАБОРЗ

SUMSUNG -> НАБОР4

НАБОР1 OR НАБОР2-> НАБОР5

НАБОР1 OR НАБОР2-> НАБОР6

НАБОР5 AND НАБОР6 -> НАБОР7


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: