Добавить в цитаты Настройки чтения

Страница 16 из 77

— Что?

Матео сразу насторожился.

— Ну… Задача ведь была индексировать сеть?

— Была.

— Он её индексирует, — быстро сказал парень, видимо поняв, что никто пока никого бить не собирается. — Просто одновременно пишет поисковик.

Я несколько секунд смотрел на него, ожидая, что сейчас последует какое-нибудь уточнение, после которого всё станет нормальным.

Уточнения не последовало.

— Я ему не поручал писать поисковик.

— Я знаю.

— Ты поручил?

— Нет.

— Кто поручил?

Матео пожал плечами.

— Думаю, он сам себе поручил. Ему, видите ли, скучно.

Разговор становился всё интереснее.

— Подожди здесь.

Я поднялся, вышел из кабинета и почти бегом направился по коридору в сторону штаба программистов. Рабочий день был в самом разгаре. За стеклянными перегородками мелькали сотрудники, где-то звонил телефон, по коридору прошли двое строителей с карточками пропусками на груди, усыпанные инструментом, как витрины магазина. Я обогнул их, толкнул дверь технического отдела и вошёл внутрь.

Штаб программистов выглядел привычно. Мониторы, кружки, провода, стопки распечаток, пустые бутылки воды и люди, давно переставшие замечать происходящее вокруг. Лунтик сидел на своём месте, уткнувшись сразу в два экрана.

Я подошёл сзади и остановился практически у него за спиной.

Никакой реакции.

Хотя нет.

— Сеньор Виктор, что-то хотели? — буднично спросил Игнасио, не оборачиваясь.

Я нахмурился.

— Как ты узнал, что это я?

Подходил я со спины. Увидеть меня он никак не мог.

Игнасио наконец крутанулся на стуле и посмотрел на меня так, словно вопрос был довольно странным.

— Я слышал шаги, но не чувствовал запаха.

— Не понял, — честно признался я.

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

Он несколько раз хлопнул ресницами.

— Намно-о-ого, — протянул я.

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

Я кашлянул.

Игнасио тут же открыл ящик стола, достал одноразовую медицинскую маску и совершенно спокойно натянул её на лицо.

Я решил не спрашивать.

— Как там… каталог?

— Двадцать три миллиона четыреста тысяч страниц.

Я моргнул.

Игнасио бросил взгляд на монитор.

— Двадцать три миллиона четыреста восемьдесят две тысячи. Но часть сейчас уйдёт как дубли. Чистыми останется около двадцати двух с половиной миллионов.

— Понятно.

Я кивнул с таким видом, словно именно эту цифру и ожидал услышать.

— А ты чем занимаешься?

— Поиском.

Я снова кивнул.

Очень медленно.

С Лунтиком вообще хотелось разговаривать осторожно. Как с человеком, который внешне ничем не отличается от остальных, но в какой-то момент способен совершенно серьёзно сообщить, что вечером улетает домой на Альфу Центавра.

— Поиском чего?

Игнасио посмотрел на меня с лёгким недоумением.

— Страниц.

— А.

Я подтянул свободный стул и сел рядом.

— Матео почему-то решил, что ты пишешь поисковик.

— Пишу.

Вот и поговорили.

— Игнасио, — начал я ещё осторожнее. — Мы договаривались собрать каталог сети.

— Да.

— Семь дней назад.

— Да.

— Поисковик я тебе писать не поручал.

— Нет.

Он соглашался настолько спокойно и последовательно, что я на несколько секунд потерял нить собственного допроса.

— Тогда почему ты его пишешь?

Лунтик посмотрел сначала на один монитор, потом на второй, словно правильный ответ действительно находился где-то между ними.

— А зачем ещё вам каталог? Вы сами сказали, что потом будете искать готовое ядро поиска на свободном рынке и загружать туда собранные страницы. Формулировка была расплывчатой. Я посмотрел существующие решения, ничего подходящего не нашёл. Идея показалась интересной.

Я открыл рот, но ничего не сказал.

Справедливо.

— Хорошо. На какой ты стадии?

Вот теперь Игнасио действительно оживился. Он развернул ко мне второй монитор и придвинул клавиатуру.

— Сам паук уже почти не требует моего внимания. Есть очередь адресов, проверка повторов, ограничения для мусорных узлов, журнал ошибок и повторные попытки для недоступных страниц. Из двадцати трёх миллионов примерно восемь миллионов я уже прогнал через обработчик.

— Что значит «обработчик»?

— Вынимаю из страницы всё полезное. Заголовок, основной текст, ссылки и подписи к ним. Разметку выбрасываю. Потом текст разбивается на слова, слова нормализуются и записываются отдельно.

Он открыл ещё одно окно. Передо мной возникли длинные столбцы цифр, адресов и отдельных слов.

— Это обратный индекс.

Я посмотрел на экран, потом на Лунтика.

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

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

— Если просто хранить двадцать миллионов страниц, то при каждом запросе придётся заново искать по двадцати миллионам страниц. Это бессмысленно. Поэтому делаем наоборот. Вот слово «автомобиль».

Он быстро что-то набрал.

На экране появился огромный список номеров.

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

— Уже ищет?

— Пока по восьми миллионам обработанных страниц.

Я посмотрел на него.

— То есть я могу написать что-нибудь прямо сейчас?

— Можете.

Игнасио открыл совершенно пустую белую страницу. Посередине находилось единственное поле ввода и маленькая кнопка рядом.

Я набрал название одной из столичных газет и нажал ввод.

Ответ появился почти мгновенно.