Информационная поисковая система на примере Рамблер

     Содержание

     Введение
 

     1 Язык поисковых запросов, регистр,  операторы 

     2 Кавычки, скобки, метасимволы 

     3 Применение языка запросов, морфология, стоп-слова 

     4 Специальные операторы, ненайденные слова, ограничение расстояния, комфортный поиск

     5 Принципы работы поисковой машины Рамблер

     Заключение

     Список  использованной литературы 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     Введение
 

     В работе описаны:  

    
  • Язык поисковых  запросов: что и как можно написать в поисковой строке;
 
    
  • Применение  языка запросов: как поисковая  машина Рамблера обрабатывает запрос;
 
    
  • Расширенный поиск: как искать в Рамблере более  эффективно, пользуясь страницей Расширенного поиска;
 
    
  • Комфортный  поиск: как установить специальную  кнопку для поиска в Рамблере прямо на панель браузера.
 
    
  • Принципы  работы поисковой машины Рамблер
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     1 Язык поисковых  запросов, регистр,  операторы 
 

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

     Регистр

     В общем случае, регистр написания  поисковых слов и операторов значения не имеет, то есть дом и ДОМ, Not и nOt воспринимаются одинаково. И лишь иногда, в целях повышения качества поиска, регистр слов поискового запроса принимается во внимание.

     Например, если запрос состоит из двух, трех или  четырех слов, каждое из которых написано с большой буквы, то предполагается поиск по имени собственному, и автоматически производится изменение ограничения расстояния между словами запроса со значения по умолчанию на величину (n-1)*2, где n – количество слов запроса. Это позволяет находить группу слов запроса, внутри которой есть не более одного "лишнего" слова или знака препинания, например "Баден-Баден", "А. Пушкин", "Федор Михайлович Достоевский". 

     Операторы

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

     Два запроса, соединенные оператором AND (логическое И) образуют сложный запрос, которому удовлетворяют только те документы, которые одновременно удовлетворяют обоим этим запросам. Иными словами, по запросу 'собака AND кошка' найдутся только те документы, которые содержат и слово 'собака', и слово 'кошка'.

     Сложному  запросу, состоящему из двух запросов, соединенных оператором OR (логическое ИЛИ) удовлетворяют все документы, удовлетворяющие хотя бы одному из этих двух запросов. По запросу 'собака OR кошка' найдутся документы, в которых есть хотя бы одно из слов 'собака' или 'кошка' (либо оба эти слова вместе).

     Оператор NOT (логическое И-НЕ) образует запрос, которому отвечают документы, удовлетворяющие левой части запроса и не удовлетворяющие правой. Так, результатом поиска по запросу 'собака NOT кошка' будут все документы, в которых есть слово 'собака' и нет слова 'кошка'.

     Если  оператор явно не указан, используется оператор по умолчанию AND: находятся только документы, содержащие все слова запроса. Так, запрос 'информация технологии кредит' будет истолкован как 'информация AND технологии AND кредит'. На странице Расширенного поиска оператор по умолчанию можно заменить на OR (Искать слова запроса: хотя бы одно). 

     Каждый  из операторов имеет сокращенное  обозначение:

     Оператор      Сокращенное обозначение
     AND      &
     OR      |
     NOT      !
 

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

     2 КАВЫЧКИ, СКОБКИ, МЕТАСИМВОЛЫ 
 

     Кавычки.

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

     Таким образом, двойные кавычки можно  использовать и просто для поиска слова в заданной форме (по умолчанию слова находятся во всех формах). Например, запросу 'самолет "заправился" посадка' удовлетворяет документ, содержащий текст '... самолет совершил посадку и заправился ...', и не удовлетворяет документ, содержащий '.. самолет совершил посадку, чтобы заправиться ...'. 

     Скобки.

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

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

     Если  запрос без скобок 'машина самолет | аэродром' эквивалентен запросу 'машина AND самолет OR аэродром' и, в соответствии с приоритетами операторов, означает "найти документы, содержащие либо слова 'машина' и 'самолет', либо слово аэродром, то запрос со скобками 'машина (самолет | аэродром)' равносилен запросу 'машина AND (самолет OR аэродром)', что означает "найти документы, содержащие слово 'машина' и одно из слов 'самолет' или 'аэродром'". 

     Метасимволы.

     Рамблер пока не поддерживает поиск строк  с использованием метасимволов ('*', '?'), которые обычно используются в значении "любая подстрока" и "произвольный одиночный символ" соответственно. Тем не менее, эти операторы зарезервированы для подобного использования в будущем. 
 
 
 

     3 Применение языка запросов, морфология, стоп-слова 
 

     Применение  языка запросов.

     Каждый  запрос, адресованный поисковой машине Рамблера, обрабатывается в соответствии с правилами языка запросов. Некоторые  слова и символы трактуются как  операторы языка запросов и обрабатываются специальным образом. Фактически, языком запросов описывается некая формула, которая используется при поиске - каждый из документов "сопоставляется" с ней, и результатом поиска являются только те документы, которые ей удовлетворяют.

     Например, запросу 'самолет' удовлетворяют все документы, в которых хотя бы раз встретилось слово 'самолет' в любой форме. Запросу, состоящему из нескольких слов, удовлетворяют документы, содержащие каждое из этих слов в любой форме (при некоторых условиях). Вопрос соответствия документа более сложному запросу определяется логикой операторов и конструкций языка запросов. 

     Морфология.

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

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

     Стоп-слова.

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

     4 Специальные операторы, ненайденные слова, ограничение расстояния, комфортный поиск 
 

     Ограничение расстояния.

     Если  запрос составлен из одного или нескольких слов без применения операторов и конструкций языка запросов, то будут найдены документы, в которых встречаются все слова запроса. При этом для каждого запроса всегда существует так называемое ограничение контекста – положительное число, по умолчанию равное расстоянию в 40 слов. Документ, в котором встретились все слова запроса, будет выдан только в том случае, если расстояние в словах между вхождениями слов запроса будет меньше этого числа. Например, по запросу 'красная армия' будут найдены те документы, в которых слова 'красная' и 'армия' хотя бы один раз встретятся менее чем в 40 словах друг от друга.

     Значение  ограничения контекста можно  изменять конструкцией '(число, запрос)', где число – любое положительное число, запрос – любой корректный с точки зрения поисковой машины запрос, состоящий более чем из одного слова (очевидно, ограничение расстояния между словами в случае однословного запроса не имеет смысла). Таким образом, по запросу '(2, красная армия)' найдутся только те документы, в которых между словами 'красная' и 'армия' хотя бы раз не стоит ни одного слова (поскольку лишь в случае их непосредственного соседства разница в порядковых номерах слов меньше 2, т.е. равна 1) 

     Ненайденные слова.

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

     Специальные операторы.

     Рамблер позволяет искать страницы, на которых  размещены счетчики Top100, TopShop, TopList, SpyLog, а также HotLog. Для того, чтобы найти в интернете все страницы, на которых размещен счетчик с заданным идентифтикатором, используйте оператор ${counter=ID}, где counter – название счетчика (top100, topshop, toplist, spylog или hotlog), а ID – номер счетчика (идентификатор ресурса).

     Пример: для того, чтобы найти в Интернете все страницы раздела Рамблер-Открытки (идентификатор Top100 – 193680), подайте Рамблеру запрос ${top100=193680}.

     Комфортный  поиск.

     Для облегчения поиска в Internet можно установить на панель броузера (Netscape или Internet Explorer версии не ниже 4) специальную кнопку поиска в Rambler. Как это сделать?

     Перетащить  мышкой одну из ссылок на специальной  страничке в поле панели ссылок.

     После этого на панели появится кнопка "Искать в Rambler". В броузере должно быть разрешено выполнение JavaScript.  Если во время просмотра документа выделить текст, который надо задать в качестве поискового запроса, и нажать на эту кнопку, запрос будет передан Rambler. Результаты поиска будут выведены в другом окне. Длина запроса ограничена 96 символами

     Как включить панель ссылок.

     Если  панель ссылок отключена, то включить ее можно следующим образом:

     Netscape

     В меню 'View' отметьте 'Show Personal Toolbar'

     Internet Explorer

     В меню 'View' (или 'Вид') определите 'ToolBars' ('Панели инструментов'). Затем пометьте 'Links' ('Ссылки')  
 
 
 
 
 
 
 
 
 
 
 
 

     5 Принципы работы поисковой машины Рамблер

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

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

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

     Полнота

     Полнота – это одна из основных характеристик поисковой системы, которая представляет собой отношение количества найденных по запросу документов к общему числу документов в Интернете, удовлетворяющих данному запросу. Например, если в сети Интернет имеется 100 страниц, содержащих словосочетание "Красная площадь", а по соответствующему запросу было найдено всего 70 из них, то полнота поиска будет 0,7. Чем полнее поиск, тем меньше вероятность, что пользователь не сможет найти нужный ему документ, при условии, что он вообще существует в Интернете.

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

     Сбором  информации занимается робот-паук, который обходит страницы с заданными URL и скачивает их в базу данных, а затем архивирует и перекладывает в хранилище суточными порциями. Робот размещается на нескольких машинах, и каждая из них выполняет свое задание. Так, робот на одной машине может качать новые страницы, которые еще не были известны поисковой системе, а на другой – страницы, которые ранее уже были скачаны не менее месяца, но и не более года назад. Хранилище у всех машин едино. При необходимости работу можно распределить другим способом, например, разбив список URL на 10 частей и раздав их 10 машинам. Параллельная работа программы позволяет легко выдерживать дополнительную нагрузку: при увеличении количества страниц, которые нужно обойти роботу, достаточно просто распределить задачу на большее число машин.

     В хранилище информация в сжатом виде собирается и разбивается на куски  по 50 Мб. Эти части постепенно распределяются между 70 машинами, на которых запущена программа-индексатор. Как только индексатор на одной из машин заканчивает обработку очередной части страниц, он обращается за следующей порцией. В результате на первом этапе формируется много маленьких индексных баз, каждая из которых содержит информацию о некоторой части Интернета. Таким образом, вся интеллектуальная обработка данных осуществляется параллельно, поэтому ускорение процесса индексации достигается простым добавлением машин в систему.

     После того, как все части информации обработаны, начинается объединение (слияние) результатов. Благодаря тому, что частичные индексные базы и основная база, к которой обращается поисковая машина, имеют одинаковый формат, процедура слияния является простой и быстрой операцией, не требующей никаких дополнительных модификаций частичных индексов. Основная база участвует в анализе как одна из частей нового индекса. Так, если объединяются 70 новых частей, то в анализе участвует 71 фрагмент (70 новых + основная база предыдущей редакции). Кроме того, единый формат позволяет проводить тестирование частичных баз еще до объединения их с основной, и обнаруживать ошибки на более раннем этапе.

     Специальная программа ("сливатор") составляет таблицы перенумерации документов базы. Содержимое всех частей объединяется. Среди страниц с одинаковыми адресами выбирается наиболее свежая версия; если при скачивании URL последней информацией была ошибка 404 (запрашиваемая страница не существует), она временно удаляется из индексной базы. Параллельно осуществляется склейка дублей: страницы, которые имеют одинаковое содержимое, но различные URL, объединяются в один документ.

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

     Точность

     Точность  – еще одна основная характеристика поисковой машины, которая определяется как степень соответствия найденных документов запросу пользователя. Например, если по запросу "Красная площадь" находится 150 документов, в 70 из них содержится словосочетание "Красная площадь", а в остальных просто присутствуют эти слова ("красная баба кричала на всю площадь"), то точность поиска считается равной 70/150 (~0,5). Чем точнее поиск, тем быстрее пользователь находит нужные ему документы, тем меньше "мусора" среди них встречается, тем реже найденные документы не соответствуют запросу.

     Повышение точности в поисковой машине Рамблер  достигается за счет использования различных технологий на всех этапах обработки и поиска информации. Одним из наиболее интересных процессов является распознавание грамматических омонимов. Омонимы – это слова, которые имеют одинаковое написание, но различный смысл. Различают лексические и грамматические омонимы. Лексические омонимы относятся к одной части речи, как, например, существительное "бор": хвойный лес, стальное сверло и химический элемент. Грамматические омонимы относятся к разным частям речи, поэтому по написанию у них обычно совпадают только отдельные формы. Примерами грамматических омонимов могут служить слова "печь" – существительное русская "печь" и глагол "печь" пирожки; "рядовой" – прилагательное "рядовой" сотрудник и существительное "рядовой" Иванов.

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

     Синтаксический  анализ позволяет также с определенной вероятностью распознавать некоторые имена собственные. Например, если в тексте несколько слов подряд написано с большой буквы, они чаще всего представляют собой имя собственное (Петр Петрович, Московский Государственный Университет). Данные о таких конструкциях учитываются при индексации и обработке запроса.

     Еще один способ повышения точности поиска – это выделение устойчивых обозначений и поиск их как отдельных лексических единиц. На сегодняшний день в Рамблере реализована система распознавания таких конструкций, например C++, б/у, п/п-к. Если по запросу С++ поднимать все тексты, в которых присутствуют латинская буква С, а также знак +, то получится огромное количество документов, далеко не все из которых соответствуют запросу; кроме того, это большая работа, значительно увеличивающая время поиска.

     Огромную  роль в повышении точности поиска играет ранжирование. Пользователь очень редко просматривает больше трех страниц с результатами поиска. Поэтому субъективно он оценивает точность по "верхним" документам. Даже если нужный документ найден поисковой машиной, но расположен на двухсотой позиции, скорее всего, он никогда не будет найден пользователем.

     По  умолчанию в Рамблере результаты ранжируются по степени соответствия (релевантности) запросу и группируются по сайтам. При ранжировании оцениваются  различные характеристики текстов, такие как:

  • Количество вхождений слов (словосочетаний) в документ – чем больше раз словосочетание "Красная площадь" присутствует в тексте, тем выше вероятность, что в нем действительно говорится о Красной площади;
  • Расположение слов запроса в документе – если словосочетание "Красная площадь" присутствует в заголовках или названии документа, то документ с большей вероятностью посвящен Красной площади;
  • Формы слов запроса – преимущество отдается вхождениям, в которых слова имеют тот же падеж, число, склонение и т.д., что и в запросе пользователя ("Красная площадь", а не "Красной площадью"). Помимо точного совпадения, выделяются две группы форм слов – близкие и далекие. Близкими считаются изменения по падежам, склонениям, спряжениям, числам и родам. Далекими формами являются причастия, деепричастия и т.п. При ранжировании преимущество отдается близким формам слов запроса.
  • Расстояние между словами запроса – если запрос состоит из нескольких слов, то в найденных документах оценивается, насколько близко друг от друга расположены эти слова. Преимущество отдается документам, в которых слова запроса находятся ближе друг к другу, потому что в этом случае они с большей вероятностью связаны между собой. Например, если слово "Красная" расположено в тексте на 5 позиции, а слово "площадь" - на 650, то скорее всего в документе речь идет не о Красной площади.
  • Относительная частота (отношение количества вхождений слов запроса в документ к общему количеству слов в документе) – если словосочетание встречается 10 раз в документе из 100 слов, то он скорее соответствует запросу, чем если оно встречается те же 10 раз в документе из 20 тысяч слов;
  • Популярность – поисковая машина автоматически вычисляет коэффициент популярности каждой страницы Интернет на основе данных счетчика Top100 и анализа гипертекстовых ссылок между страницами. Преимущество отдается более популярным ресурсам.
  • Ссылочный вес документа – при ранжировании учитывается ссылочный вес страницы, рассчитанный на основании учета гиперссылок, содержащих слова запроса. Так, если на некоторый документ словами "Красная площадь" ссылается большое количество страниц с высокими поэффициентами популярности, то ему отдается приоритет по запросу Красная площадь.

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

     Использование логического оператора OR (ИЛИ) позволяет расширить сферу поиска и увеличить его полноту, в то время как оператор NOT (И-НЕ), наоборот, повышает точность поиска за счет нахождения документов, которые содержат одни слова запроса и не содержат другие. Для повышения точности можно также задавать расстояние между словами. Если в искомом словосочетании порядок слов обычно сохраняется (например, Красная площадь), то в запросе для повышения точности имеет смысл ограничить расстояние, указав его в скобках через запятую: (2, Красная площадь). Это позволит отсеять документы, в которых слова красная и площадь не расположены рядом, а разбросаны по тексту.

     Увеличить точность можно с помощью использования  поиска в найденном. Уточняющий поиск, проводится уже не по всей индексной  базе, а только по результатам предыдущего поиска. Таким образом, круг найденных документов сужается. Например, если дать запрос Красная площадь, а затем, провести поиск в найденном по запросу Москва, то результат будет содержать только те документы, в которых говорится о Красной площади города Москвы.

     Актуальность

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

     На  сегодняшний день индексная база поисковой системы Рамблер состоит  из 8 частей, каждая из которых живет  своей независимой жизнью. Весь Интернет условно разделен на 7 секторов и называется своим цветом: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый. Сайт компании Рамблер относится к голубому сектору. Информация о web-ресурсах каждого сектора хранится в соответствующей части индексной базы. Восьмая часть - "быстрая база" - включает в себя страницы, на которых размещен счетчик Тор 100 и которые еще не успели попасть в основную индексную базу.

Информационная поисковая система на примере Рамблер