Андрей Еслер – Наследник $$$ уровня 6 (страница 11)
— Двадцать три миллиона четыреста восемьдесят две тысячи. Но часть сейчас уйдёт как дубли. Чистыми останется около двадцати двух с половиной миллионов.
— Понятно.
Я кивнул с таким видом, словно именно эту цифру и ожидал услышать.
— А ты чем занимаешься?
— Поиском.
Я снова кивнул.
Очень медленно.
С Лунтиком вообще хотелось разговаривать осторожно. Как с человеком, который внешне ничем не отличается от остальных, но в какой-то момент способен совершенно серьёзно сообщить, что вечером улетает домой на Альфу Центавра.
— Поиском чего?
Игнасио посмотрел на меня с лёгким недоумением.
— Страниц.
— А.
Я подтянул свободный стул и сел рядом.
— Матео почему-то решил, что ты пишешь поисковик.
— Пишу.
Вот и поговорили.
— Игнасио, — начал я ещё осторожнее. — Мы договаривались собрать каталог сети.
— Да.
— Семь дней назад.
— Да.
— Поисковик я тебе писать не поручал.
— Нет.
Он соглашался настолько спокойно и последовательно, что я на несколько секунд потерял нить собственного допроса.
— Тогда почему ты его пишешь?
Лунтик посмотрел сначала на один монитор, потом на второй, словно правильный ответ действительно находился где-то между ними.
— А зачем ещё вам каталог? Вы сами сказали, что потом будете искать готовое ядро поиска на свободном рынке и загружать туда собранные страницы. Формулировка была расплывчатой. Я посмотрел существующие решения, ничего подходящего не нашёл. Идея показалась интересной.
Я открыл рот, но ничего не сказал.
Справедливо.
— Хорошо. На какой ты стадии?
Вот теперь Игнасио действительно оживился. Он развернул ко мне второй монитор и придвинул клавиатуру.
— Сам паук уже почти не требует моего внимания. Есть очередь адресов, проверка повторов, ограничения для мусорных узлов, журнал ошибок и повторные попытки для недоступных страниц. Из двадцати трёх миллионов примерно восемь миллионов я уже прогнал через обработчик.
— Что значит «обработчик»?
— Вынимаю из страницы всё полезное. Заголовок, основной текст, ссылки и подписи к ним. Разметку выбрасываю. Потом текст разбивается на слова, слова нормализуются и записываются отдельно.
Он открыл ещё одно окно. Передо мной возникли длинные столбцы цифр, адресов и отдельных слов.
— Это обратный индекс.
Я посмотрел на экран, потом на Лунтика.
— Мы опять дошли до слов, значение которых я должен угадывать по выражению твоего лица.
Игнасио нахмурился, явно пытаясь понять, что именно здесь было непонятно.
— Если просто хранить двадцать миллионов страниц, то при каждом запросе придётся заново искать по двадцати миллионам страниц. Это бессмысленно. Поэтому делаем наоборот. Вот слово «автомобиль».
Он быстро что-то набрал.
На экране появился огромный список номеров.
— Это документы, в которых оно встречается. Рядом хранится положение слова, количество повторений, наличие в названии страницы, заголовке и тексте ссылок. Пользователь вводит запрос, а система не читает весь интернет заново. Она сразу достаёт готовые списки и работает только с ними.
— Уже ищет?
— Пока по восьми миллионам обработанных страниц.
Я посмотрел на него.
— То есть я могу написать что-нибудь прямо сейчас?
— Можете.
Игнасио открыл совершенно пустую белую страницу. Посередине находилось единственное поле ввода и маленькая кнопка рядом.
Я набрал название одной из столичных газет и нажал ввод.
Ответ появился почти мгновенно.
Первым действительно стоял официальный сайт газеты. Ниже шли несколько страниц, где она часто упоминалась, потом новостная заметка, какая-то региональная подборка и совершенно посторонняя статья, каким-то чудом оказавшаяся на шестой позиции.
Я перевёл взгляд на Игнасио.
— Работает.
— Плохо, — немедленно заключил Лунтик.
— За семь дней я бы позволил ему работать плохо.
— Я нет.
Разумеется.
Игнасио закрыл выдачу и снова вернулся к своим таблицам.
— Сейчас совпадения считаются слишком примитивно. Слова в названии получают больший вес. В заголовке меньше. В основном тексте ещё меньше. Если несколько слов запроса стоят рядом, добавляется коэффициент. Этого хватает, чтобы находить подходящие страницы, но не хватает, чтобы стабильно ставить лучшую наверх.
— И ты понял, что мне нужен PageRank?
Впервые за весь разговор он посмотрел на меня с неподдельным интересом.
— Я понял, зачем вы заставили нас сохранять все связи между страницами.
Игнасио взял карандаш, перевернул один из исписанных листов чистой стороной и нарисовал несколько кружков.
— Обычный текстовый поиск смотрит внутрь страницы. Ваш PageRank должен смотреть ещё и на сеть вокруг неё. Если на страницу ссылаются другие сайты, она получает вес. Если на неё ссылается страница, которая сама считается важной, вес ссылки должен быть выше.
Он начал соединять кружки стрелками.