Напиши свою поисковую систему – это очень просто
Не сложнее, чем изучить в совершенстве несколько языков программирования, включая ассемблер Зато потом, ты сможешь козырять перед знакомыми, что крут! Написал свою личную ПС! Ладно, это все шуточки, а вот, что говорят нам серьезные люди. Рекомендуется к прочтению начинающим, да и не только, программерам и прочим амбициозным личностям.
Внутренности и вся логика на С или С++ (С на 20-30% быстрее). Данные лучше хранить в BerkeleyDB. Она раз в 30-50 быстрее, чем MySQL. Обратные индексы, пары слово-идентификатор там же. Краулер - не знаю, не писал. Я бы заказал (там очень много тонкостей - пусть эти 200 строк напишет профи) на С. Причина - есть реальная многопоточность + предварительная обработка скачанных страниц будет намного быстрее, чем в PHP или Perl. Весь интерфейс пользователя - на PHP. Он здесь лучший. Хотя тоже вопрос, потому что в своём поисковике я написал и эту часть на С ради 50 тыс. запросов в секунду. Логи бы вёл в виде обычных файлов, которые время от времени сбрасывал в MySQL для аналитической обработки. Аналитику логов можно делать на чём угодно. Я сделал на PHP с Mysql запросами.
Я бы не стал писать на Perl, .NET и Java. Яндекс и Рамблер выедают с рынка всех стоящих разработчиков на этом языке, а их немного. Поэтому они дорогие и проект будет дорог в поддержке. С .NET таже история: лицензии (компилятор, операционка, СУБД, веб-сервер), программисты, архитекторы - всё сейчас очень дорого. Java очень тормознутая и требовательна к железу. Фанаты этого языка имеют другое мнение, но так уж сложился мой опыт.
Я бы внимательно посмотрел на RubyOnRails - говорят, там с многопоточностью всё нормально, а значит можно написать краулер. Правда не знаю, как обстоит дело на рынке программистов. И стоит ли в проект добавлять третий язык ради быстрого написания краулера.
Вот такой вот взгляд на то, что я недавно делал.
Спасибо, Слава Шевцов
Ноябрь 22nd, 2011 - 11:42
Хотя бы расположение слов в предложениях изменил
да и ссылку на первоисточник указал (((