8.9. Поиск по индексу

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

Логические операторы, получившие имя в честь знаменитого математика Джорджа Буля (Boole) (1815 - 1864). Буль первым показал, что существует аналогия между алгебраическими и логическими действиями, так как и те и другие предполагают лишь два варианта ответов - истина или ложь, нуль или единица. Он придумал систему обозначений и правил, пользуясь которыми можно было закодировать любые высказывания, а затем манипулировать ими как обычными числами. Булева алгебра располагала тремя основными операциями - И, ИЛИ, НЕ, которые позволяли производить сложение, вычитание, умножение, деление и сравнение символов и чисел.

Наиболее часто используемые булевы операторы:

  1. AND - все термины, соединенные "AND", должны присутствовать в предлагаемом документе. Большинство поисковых систем используют значок "+" вместо "AND";

  2. OR - как минимум одно из ключевых слов, соединенных "OR", должно присутствовать в искомом документе;

  3. NOT - ключевое слово (слова), следующее за "NOT", не должно появляться в искомом документе. Некоторые поисковые системы используют значок "-" вместо "NOT";

  4. FOLLOWED BY - одно из ключевых слов должно следовать непосредственно за другим;

  5. NEAR - одно из слов должно отстоять на определенное количество слов от другого;

  6. Кавычки - слова внутри кавычек - это фраза, которая целиком должна быть найдена в пределах документа или файла.

Текст, в пределах которого проверяется действие логических операторов, называется единицей поиска. Это может быть предложение, абзац или весь документ. В разных поисковых системах могут использоваться различные единицы поиска. Например, можно искать документы, в которых два слова - "электрический" и "счетчик" - находятся одновременно в пределах предложения или в пределах всего документа. Соответственно поиск в пределах предложения возможен для тех систем, которые имеют в индексе подробный адрес.

Синтаксис языка запросов в разных поисковых системах может отличаться, обычно в справочных данных на поисковом сервере приводится информация о синтаксисе запросов. В качестве примера в табл. 4.2. приводится синтаксис языка запросов, принятый в поисковой машине Yandex.

Таблица 4.2. Синтаксис языка запросов при строгом поиске

Синтаксис

Что означает оператор

Пример запроса

Пробел или &

Логическое И (в пределах предложения)

Лечеьная физкультура

&&

Логическое И (в пределах документа)

Рецепты && (плавленый сыр)

I

Логическое ИЛИ

Фото I фотография I снимок I фотоизображение

+

Обязательное наличие слова в найденном документе (работает также в применении к стоп-словам)

+Быть или +не быть

()

Группирование слов

(Технология I изготовление) (сыра I творога)

~

Оператор И НЕ (в пределах документа)

Банки ~ закон

~~или~

Оператор И НЕ (в пределах документа)

Путеводитель по Парижу ~~ (агентство I тур)

/(n m)

Расстояние в словах (~ назад +вперед)

Поставщики /2 кофе музыкальное /(-2 4) образование вакансии ~/+1 студентов

<< <<

Поиск фразы

<<Красная шапочка>> (эквивалентно красная /+1 шапочка)

&&/(n m)

Расстояние в предложениях (-назад +вперед)

Банк && /1 налоги

Стоп-слова - это распространенные слова, которые игнорируют поисковые машины во время поиска по ключевому слову. Поисковики не обращают на них внимания, чтобы сэкономить место на своих серверах и ускорить процесс поиска.

Многие поисковые системы имеют режим "расширенный поиск". Например, в наиболее популярной на сегодня поисковой системе Google ( www.google.com ) этот режим дает возможность искать документы на определенном языке, измененные в определенное время или представленные в определенном формате, например Word-документ или презентацию Power Point.

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

Несмотря на то что человек человеку всегда лучше объяснит, что же он ищет, нельзя сказать, что современные поисковые машины - это примитивные системы, которые, кроме как найти некоторую последовательность символов, ничего не могут. Напротив, существуют, например, поисковые системы позволяющие решать проблему различных словоформ. А это далеко не тривиальная задача. Если мы ищем документ по ключевому слову "стол", то, вероятно, документ, содержащий фразу "столы для кухни" - это то, что нам нужно. Однако "стол" и "столы" для системы, осуществляющей формальное сравнение, - это разные слова. Поиск, учитывающий словоизменения, называется морфологическим поиском.