Выбрать главу

Большинство значимых зарубежных нерусскоязычных сайтов может быть найдено по ссылке, при этом, в отличие от русскоязычных сайтов, в Индекс они не попадают. Упрощается ситуация в том случае, когда у компаний, таких как BMW, IBM и многих других, появляются русскоязычные версии сайтов, без проблем индексируемые Яндексом.

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

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

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

□ оптимизация базовых поисковых алгоритмов и архитектуры поиска;

□ регулярное увеличение мощностей вычислительных ресурсов поисковой системы;

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

Оптимизация поисковых алгоритмов проводится постоянно. Результаты таких работ вводятся в действие до двух раз в год. Сказывается их внедрение на уменьшении нагрузки на поисковую машину (в год эта величина составляет 20–30 %), а также на уменьшении времени отклика.

Увеличение мощности — это постоянное обновление используемого оборудования. Сюда входит и переход на более мощные процессоры, увеличение оперативной памяти, увеличение объемов дисковых хранилищ. Способ хотя и необходимый, но крайне затратный. Результативность выполненного апгрейда можно косвенно оценить увеличением объема поисковой базы, находящейся в его распоряжении.

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

Аналогично обстоит дело и со сбором информации. Этим занимается робот-паук, который обходит страницы с заданными URL и скачивает их в базу данных, а затем архивирует и перекладывает в хранилище суточными порциями. Робот размещается на нескольких машинах, и каждая из них выполняет свое задание. Так, робот на одной машине может качать новые страницы, которые еще не были известны поисковой системе, а на другой — страницы, которые ранее уже были скачаны не менее месяца, но и не более года назад.

Хранилище у всех машин едино.

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

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

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