Макс

Родной город: Омск

Фото галерея: смотреть

Контакты: написать

О себе:

Интересы:

- программирование

- интернет

- психология

- менеджмент

- автоматизация

Погляди
Голосование

Нравиться ли вам блог

  Да
  Нет
  Я тут случайно

 

ГлавнаяКарта сайтаПечать страницы

Создание поисковой системы



Как то мне нужно было сделать много запросов к Yandex и Google, и я понял что не смогу  миллион запросов выполнить к этим поисковым системам. И вот обдумав мне пришла идея в голову, а не СДЕЛАТЬ ли мне поисковую машину.

Вот блок-схема работы всей моей поисковой системы, далее будут комментарии.

Схема работы поисковой машины

 

Поеснения по блок-схеме:

1) Поисковый робот-паук.

Это много поточное приложение, каждый поток будет брать из таблицы заданий (2 блок)  одно задание и загружать страницу. После загрузки будет произведен очистка и преобразование HTML тегов (теги будут приведены в единый регистр, удалены комментарии и JavaScript), далее проанализированы ключевые слова (исходя из заголовка страницы H1,H2,H3, B, общей плотности слов и т.д.) далее паук сохранит(перезапишит) очищенную страницу в файловое хранилище (блок 3) и сохранит данные по ключевикам, внешним, внутренним ссылкам, даст статус странице (блок 2). После нахождения внутренних и внешних ссылок робот проверит их существование в базе данных если их нету тогда добавит в таблицу заданий и в ближайшее время проверит их.

Робот так же должен:

- конвертировать страницу в единую кодировку, скорее всего это будет UTF-8

- должна быть возможность изменения количества потоков

- должен быть указан период для повторного прохождения по сайтам

- должен анализировать sitemap.xml

- должен анализировать rotots.txt

- должен запоминать ссылки на RSS ленты в отдельную таблицу

- должен анализировать ERROR'ы от веб сервера, такие как ошибка 404 и соответственно давать странице статус

2) SQL база данных.

 База данных будет использоваться FireBird потому, что она бесплатна, она может выполнять сложные SQL запросы, она храниться в одном файле (очень удобно при масштабировании системы), данная база есть как в Linux так и в Windows. Данная система для начало будет использоваться для личных целей, поэтому мощностей данной базы хватит.

На текущий момент остался не решенным вопрос :  стоит ли хранить урезанные копии страниц без тегов(т.е. только уникальные словоформы- предлог и с корнем)  в базе данных. Это очень ускорит сделает качественный поиск в базе, но так же и очень нагрузит базу. Как вариант можно сделать отельную SQL -базу данных в Файловом хранилище со ссылками на идентификаторы в основной базе данных. Для начало будет реализована совместная работа хранилища и дополнительной базы.

3) Файловое хранилище

 Файловое хранилище нужно для хранения урезанных дубликатов, NTFS со сжатием пригодиться для этого само то или ZIP сжатие шаблонов. Доступ будет осуществляться для начало по NetBios.В дальнейшем может быть разработан отдельный сетевой много поточный интерфейс для работы с файлами.

4) Робот фильтр

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

Задачи:

- удаление мертвых записей и страниц из базы данных

- удаление сателлитов

- удаление ГС

- анализ на синонимизацию и рерайт

- создание эвристической методики анализа

5) Интерфейс доступа к системе поиска

 Данный модуль будет реализован на базе Веб-сервера и параллельно будет работать приложение(для тестов удобно) , так же ранжирование будет реализовано с помощью SQL-запросов и кэширование запросов. 

Настройки:

- период существование кэша запросов (неделя для начало само то)

- отключение кэша

Выводы

 Реализация данной системы займет приблизительно 2-4 месяца, так же нужны два-три компьютера. На первом компьютере будет робот-паук, на котором SQL-база и файловое хранилище, на третьем Робот-фильтр. Интерфейс будет находиться для начало на клиентской машине далее возможно перенести на Веб-сервер. Так же для SQL-базы и файл-хранилица нужна будет жесткие диски 2 штуки по терабайту для начало.

При переносе данной системы на более мощные сервера нужно будет сделать некоторые изменения системы. Но мы преследуем цель - СОЗДАНИЕ ЛИЧНОЙ поисковой машины  поэтому я 2-компьютеров хватит.

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

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

Для начального запуска системы нужно в задания добавить базу сайтов DMOZ или YACA, я пока не решил какую лучше, но думаю YACA лучше для зоны RU.



Дата публикации:04.06.2010 
Roman
avatar
10.11.2011

Сделал?
Admin
avatar
07.06.2012

Да, сейчас на бета тесте с ней играюсь, не могу решить проблему периодического (сутки-трое) падения программы, критические секции в потоках не помогают отловить падение, подозреваю переполнение оперативной памяти. Пока ищу проблему
Bolt
avatar
06.01.2013

что нового в процессе антигуглизации? давно жду появления альтернативы.
admin
avatar
06.05.2013

Дерьмо получилось теперь