УДК 347.1
Аканов Т.Т.
Магистрант кафедры Информатики и информационной безопасности ЕНУ им. Л.Н. Гумилева
(Казахстан)
РАЗРАБОТКА АЛГОРИТМОВ ОБЕСПЕЧЕНИЯ КАЧЕСТВА РАСПРЕДЕЛЕННОГО ПОИСКОВОГО РОБОТА ДЛЯ СЕТИ ИНТЕРНЕТ
Аннотация: в данной статье рассматриваются проблематика сферы поисковых систем, требования к разработке поискового робота и постановка задачи на основе требований.
Ключевые слова: индекс, база, поиск, поисковая система.
На текущем этапе развития, когда общество осуществляет переход от постиндустриальной эпохи к информационной, требования к системам хранения и обработки информации непрерывно растут. Традиционные решения не справляются с ростом количества данных. Трудно оценить общий объем данных, однако, по оценкам IDC (International Data Corporation) в цифровом виде на данный момент хранится порядка 1, 8 ■ 1021 байт, что в 10 раз больше чем в 2006 году. К значительному количеству данных можно получить доступ через Всемирную Паутину (WWW). При таких объемах остро стоит задача организации эффективного поиска. Уже в 2009 году Google Search обработал более 109,5 миллионов сайтов, и более 1012 уникальных URL. На данный момент их индекс содержит 4 ■ 1010 документов. Одной из специфических областей поиска является поиск по новостным ресурсам. Для документов с новостных сайтов характерна привязка к дате, региону и тематике. Таким образом, такие документы легко классифицировать, что позволяет производить более качественный поиск и анализ. В качественном инструменте для анализа СМИ заинтересованы различные консалтинговые и PR агентства, прессслужбы, маркетинговые отделы
крупных компаний. Одна из задач поисковой системы - нахождение и загрузка документов (Web crawling), за которую отвечает
поисковый робот (Spider, Crawler). Web crawling весьма ресурсоемкий процесс.
Основные проблемы связаны с большим количеством данных, отсутствием контроля
над данными, постоянным изменением структуры ресурсов, динамическим созданием
страниц и низким качеством некоторых ресурсов.
Однако, специализация на определенной узкой области web позволяет
существенно повысить производительность web crawler^. Конечной целью работы
является создание системы способной эффективно индексировать новости в рунете.
Поисковая система — система, разработанная для поиска информации в WWW.
Результаты поиска которой, как правило, представлены в виде списка "попаданий".
Информация может состоять из веб страниц, изображений, мультимедийных данных.
Поисковая система состоит из трех основных компонент: • поисковый робот —
программа, предназначенная для перебора документов и занесения данных о них в базу;
• индексатор — программа, создающая на основе полученных с помощью робота
данных индекс; • поисковик
— программа, осуществляющая поиск в полученном индексе на основе
поискового запроса. В условиях постоянно расширяющегося и изменяющегося WWW,
непрерывно возрастают требования к поисковым системам. Системы общего поиска
нацелены на охват большей части данных доступных в WWW. Такие системы
предназначены для поиска наиболее релевантных документов относящихся к объекту
поиска. Системы тематического поиска более разнообразны, и требования к ним более
специфичны. Например, Google Microblogging Search Engine ориентирован на поиск по
записям в микроблогах, где крайне важна задержка между созданием записи, и ее
попадением в индекс.
Основные источники новостей в WWW — это электронные СМИ и блоги. По
данным liveinternet на 2008 год, рунет насчитывает 4392 сайта СМИ, а число блогов
значительно больше — по данным Яндекс за 2009 год в русскоязычной блогосфере
насчитывается порядка 840000 активных блогов, на которых ежедневно публикуется
270
порядка 300000 постов.1 Очевидно, за прошедшее время количество таких сайтов значительно увеличилось. За сутки каждое из подобный изданий публикует до 100 документов (lenta.ru). Таким образом, можно говорить о десятках миллионов создаваемых документов в год. Под новостью понимается документ содержащий текст, заголовок и дату. Для СМИ и блогов характерно:
• большое количество посторонних страниц, не содержащих новостей;
• схожая структура (как именования URL, так и самого HTML);
• наличие RSS или другой новостной ленты (web feed). К новостным поисковым системам предъявляются следующие требования: • минимальное время между публикацией статьи на новостном ресурсе и ее предоставлением в поисковой выдаче;
• поиск должен осуществлять не по всей HTML-странице, а только по ее существенным частям.
• Конечной целью работы является создание поискового робота способного эффективно индексировать новости в рунете. Поисковый робот (Web crawler) — программа для поиска веб-страниц в сети[5]. Грубо говоря поисковый робот начинает с URL для начальной страницы р0. Он скачивает р0, выделяет все URL, которые в ней находятся, и добавляет их в очередь URL (crawling frontier ). Затем робот в некотором порядке выбирает URL из очереди и повторяет процесс. Каждая скачанная страница передается клиенту, который затем создает индекс по страницам.
Важным фактором, влияющим на качество поиска, является идентификация страницы содержащей новость и выделение её содержательной части. В данной работе предполагается наличие базы данных, содержащей правила на основе регулярных выражений, которые по URL определяют содержит ли данная страница новость, а так же правил, по которым из веб- страницы выделяется содержательная часть. Далее под документом понимаются выделенные по этим правилам данные.
В качестве основного показателя эффективности используется количество
полученных документов за сутки. Поскольку объем данных непрерывно увеличивается,
неизбежна деградация производительности. Это связано в первую очередь с
постоянным ростом размера базы ссылок. Поэтому также в качестве метрики
271
используется произведение количества полученных за сутки документов с общим числом документов. То есть если количество вычислительных мощностей растет прямо пропорционально числу документов в индексе, скорость получения новых документов должна хотя бы не падать, что подразумевает хорошую горизонтальную масштабируемость всех ключевых компонент системы. Требования к системе:
• поддержка десятков миллионов документов; • скорость роста базы документов — более 50 тысяч документов в день;
• попадение в индекс документов из RSS лент не позже чем через 12 часов после их публикации;
• попадение в индекс старых документов из архива — некоторые документы могут находиться достаточно "глубоко" (например чтобы получить новости месячной давности на ресурсе fontanka.ru необходимо сделать 5 переходов).
• отсутствие дубликатов в пределах одного домена — под дубликатом понимается документ у которого совпадает URL или текст с другим документом.
Список литературы:
1. D. Cutting. Building Nutch: Open Source Search // Queue. Vol. 2. Issue. 2. ACM. 2004. P. 54-61. Cutting. Scalable computing with Hadoop. 2006. http://opendocs.net/apache/hadoop/yahoo-sds.pdf
2. E. Hatcher, O. Gospodnetic. Lucene in action. Mamming Publications Co. 2010. P. 14-35.
3. Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters // Commun. ACM. Vol. 51. Issue. 1. ACM. 2008. P. 107-113.
4. Junghoo Cho, Hector Garcia-Molina, Lawrence Page. Efficient Crawling Through URL Ordering // Computer Networks and ISDN Systems. Vol. 30, Issue. 1- 7. 1998. P. 161- 172.
5. M. Michael, J. E. Moreira, D. Shiloach, R. W. Wisniewski. Scale-up x Scale- out: A Case Study using Nutch/Lucene // Parallel and Distributed Processing Symposium. IPDPS 2007. IEEE International. 2007. P. 1-8