Поиск по индексу заключается в том, что пользователь формирует запрос и передает его поисковой машине. В случае когда у пользователя имеется несколько ключевых слов, весьма полезно использование булевых операторов
Логические операторы, получившие имя в честь знаменитого математика Джорджа Буля (Boole) (1815 - 1864). Буль первым показал, что существует аналогия между алгебраическими и логическими действиями, так как и те и другие предполагают лишь два варианта ответов - истина или ложь, нуль или единица. Он придумал систему обозначений и правил, пользуясь которыми можно было закодировать любые высказывания, а затем манипулировать ими как обычными числами. Булева алгебра располагала тремя основными операциями - И, ИЛИ, НЕ, которые позволяли производить сложение, вычитание, умножение, деление и сравнение символов и чисел.
Наиболее часто используемые булевы операторы:
AND - все термины, соединенные "AND", должны присутствовать в предлагаемом документе. Большинство поисковых систем используют значок "+" вместо "AND";
OR - как минимум одно из ключевых слов, соединенных "OR", должно присутствовать в искомом документе;
NOT - ключевое слово (слова), следующее за "NOT", не должно появляться в искомом документе. Некоторые поисковые системы используют значок "-" вместо "NOT";
FOLLOWED BY - одно из ключевых слов должно следовать непосредственно за другим;
NEAR - одно из слов должно отстоять на определенное количество слов от другого;
Кавычки - слова внутри кавычек - это фраза, которая целиком должна быть найдена в пределах документа или файла.
Текст, в пределах которого проверяется действие логических операторов, называется единицей поиска. Это может быть предложение, абзац или весь документ. В разных поисковых системах могут использоваться различные единицы поиска. Например, можно искать документы, в которых два слова - "электрический" и "счетчик" - находятся одновременно в пределах предложения или в пределах всего документа. Соответственно поиск в пределах предложения возможен для тех систем, которые имеют в индексе подробный адрес.
Синтаксис языка запросов в разных поисковых системах может отличаться, обычно в справочных данных на поисковом сервере приводится информация о синтаксисе запросов. В качестве примера в табл. 4.2. приводится синтаксис языка запросов, принятый в поисковой машине Yandex.
Синтаксис |
Что означает оператор |
Пример запроса |
Пробел или & |
Логическое И (в пределах предложения) |
Лечеьная физкультура |
&& |
Логическое И (в пределах документа) |
Рецепты && (плавленый сыр) |
I |
Логическое ИЛИ |
Фото I фотография I снимок I фотоизображение |
+ |
Обязательное наличие слова в найденном документе (работает также в применении к стоп-словам) |
+Быть или +не быть |
() |
Группирование слов |
(Технология I изготовление) (сыра I творога) |
~ |
Оператор И НЕ (в пределах документа) |
Банки ~ закон |
~~или~ |
Оператор И НЕ (в пределах документа) |
Путеводитель по Парижу ~~ (агентство I тур) |
/(n m) |
Расстояние в словах (~ назад +вперед) |
Поставщики /2 кофе музыкальное /(-2 4) образование вакансии ~/+1 студентов |
<< << |
Поиск фразы |
<<Красная шапочка>> (эквивалентно красная /+1 шапочка) |
&&/(n m) |
Расстояние в предложениях (-назад +вперед) |
Банк && /1 налоги |
Стоп-слова - это распространенные слова, которые игнорируют поисковые машины во время поиска по ключевому слову. Поисковики не обращают на них внимания, чтобы сэкономить место на своих серверах и ускорить процесс поиска.
Многие поисковые системы имеют режим "расширенный поиск". Например, в наиболее популярной на сегодня поисковой системе Google ( www.google.com ) этот режим дает возможность искать документы на определенном языке, измененные в определенное время или представленные в определенном формате, например Word-документ или презентацию Power Point.
После того как пользователь передал запрос поисковой системе, она обрабатывает синтаксис запроса и сравнивает ключевые слова со словами в индексе. После этого составляется список сайтов, отвечающих запросу, они ранжируются по релевантности и формируется результат поиска, который и выдается пользователю.
Несмотря на то что человек человеку всегда лучше объяснит, что же он ищет, нельзя сказать, что современные поисковые машины - это примитивные системы, которые, кроме как найти некоторую последовательность символов, ничего не могут. Напротив, существуют, например, поисковые системы позволяющие решать проблему различных словоформ. А это далеко не тривиальная задача. Если мы ищем документ по ключевому слову "стол", то, вероятно, документ, содержащий фразу "столы для кухни" - это то, что нам нужно. Однако "стол" и "столы" для системы, осуществляющей формальное сравнение, - это разные слова. Поиск, учитывающий словоизменения, называется морфологическим поиском.