Поисковые технологии или в чем загвоздка написать свой поисковик. Создать поисковую систему


Поисковые технологии или в чем загвоздка написать свой поисковик / Хабр

Когда-то давно взбрела мне в голову идея: написать свой собственный поисковик. Было это очень давно, тогда я еще учился в ВУЗе, мало чего знал про технологии разработки больших проектов, зато отлично владел парой десятков языков программирования и протоколов, да и сайтов своих к тому времени было понаделано много.

Ну есть у меня тяга к монструозным проектам, да…

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

На данный момент у меня есть собственный, обучающийся поисковик от и до, со многими нюансами – подсчетом PR, сбором статистик-тематик, обучающейся функцией ранжирования, ноу хау в виде отрезания несущественного контента страницы типа меню и рекламы. Скорость индексации примерно полмиллиона страниц в сутки. Все это крутится на двух моих домашних серверах, и в данный момент я занимаюсь масштабированием системы на примерно 5 свободных серверов, к которым у меня есть доступ.

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

Есть много задач при построении таких систем, которые почти нереально решить в общем случае, однако с помощью некоторых ухищрений, придумок и хорошего понимания как работает железячная часть Вашего компьютера можно серьезно упростить. Как пример – пересчет PR, который в случае нескольких десятков миллионов страниц уже невозможно поместить в самой большой оперативной памяти, особенно если Вы, как и я, жадны до информации, и хотите кроме 1 цифры хранить еще много полезностей. Другая задача – хранение и обновление индекса, как минимум двумерной базы данных, в которой конкретному слову сопоставляется список документов, на которых оно встречается.

Просто вдумайтесь, Google хранит, по одной из оценок, более 500 миллиардов страниц в индексе. Если бы каждое слово встречалось на 1 странице только 1 раз, и на хранение этого надо было 1 байт – что невозможно, т.к. надо хранить хотя бы id страницы – уже от 4 байт, так вот тогда объем индекса бы был 500гб. В реальности одно слово встречается на странице в среднем до 10 раз, объем информации на вхождение редко когда меньше 30-50 байт, весь индекс увеличивается в тысячи раз… Ну и как прикажите это хранить? А обновлять?

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

На сегодня объем только индекса, по которому происходит поиск — 57Gb, увеличивается каждый день примерно на 1Gb. Объем сжатых текстов – 25Gb, ну и я храню кучу другой полезной инфы, объем которой очень трудно посчитать из-за ее обилия.

Вот полный список статей которые относятся к моему проекту и описаны здесь: 0. Поисковые технологии или в чем загвоздка написать свой поисковик 1. С чего начинается поисковик, или несколько мыслей про crawler 2. Общие слова про устройство поиска в Web 3. Dataflow работы поисковой машины 4. Про удаление малозначимых частей страниц при индексации сайта 5. Методы оптимизации производительности приложения при работе с РБД 6. Немного про проектирование баз данных для поисковой машины 7. AVL деревья и широта их применения 8. Работа с URL и их хранение 9. Построение индекса для поисковой машины

habr.com

Как создать альтернативную поисковую систему

Опубликовано января 16, 2008 в рубрике Поисковые системы

Сразу оговорюсь, что, возможно, я не совсем правильно назвал эту статью и надо было бы назвать ее, к примеру, «Создание своей поисковой системы». Быть может, у читателя сейчас промелькнула мысль: к чему бы такое замечание в самом начале статьи? Но давайте не будем забегать вперед, скоро все встанет на свои места...

Итак, поисковая система. Для чего она нужна? Думаю, это не секрет для любого пользователя сети. Поисковая система позволяет найти то, что мы ищем в интернете. Другими словами, она для нас — источник информации. В принципе, поисковой системе все равно, какую информацию искать, она будет искать все, что ей скажут. Она лишена человеческого разума и ее возможности ограничены программными и техническими средствами. На этом, думаю, стоит остановиться отдельно.

Предположим, у нас на столе лежат три книги: учебник по химии, кулинарная книга и каталог магазинов. В этих книгах нам нужно найти информацию о бургундском вине. Как бы поступил в этом случае человек, а как поисковая машина? Наверняка человек бы подумал, что конкретно его интересует в вине — химический состав или в каком магазине оно продается. Логично предположить, что поиск стал бы продолжаться не во всех трех книгах, а в двух или вовсе в одной. Иными словами, человек бы уточнил свой запрос и отсеял ненужное с помощью своего разума.

В аналогичном случае поисковой машине пришлось бы намного сложнее, она ведь не может отсеивать ненужное «налету». Алгоритм ее действий выглядел бы примерно так: 1) поиск во всех трех книгах 2) сортировка результатов по точностью совпадения с поисковой фразой. Думается, что такой поиск выдавал бы не самые лучшие результаты, поскольку слово «замок» для поисковой системы — это и «замок», и «замок» тоже. Таким образом, поисковая машина должна уметь не только искать определенные фразы в своей базе, но и хоть немного учитывать морфологию языка и многое другое. Итак, мы подошли к важному выводу. Хорошая поисковая система — это сложный механизм, требующий значительных аппаратных ресурсов.

Соответственно, создать поисковую систему, альтернативную общеизвестным монстрам поиска сложно, долго и затратно. Те же Google и Яндекс потратили огромное количество денег и уйму времени на то, чтобы сейчас мы могли пользоваться их услугами.

Возможно кто-то спросит: неужели невозможно создать небольшую поисковую систему, которая бы искала в определенной сфере или строго по определенным сайтам? Конечно же, решение есть. Тут существует, на мой взгляд, два варианта:1) использовать как платные, так и бесплатные скрипты поиска 2) использовать специальные сервисы Google, Яндекс, Yahoo и т.д.

В качестве реализации первого варианта можно попробовать:

1) бесплатный скрипт Sphider, написанный на php. Неплохо поддерживает кириллицу (если изменить в коде одну строчку), есть свой индексирующий бот. Из админ-панели можно управлять системой, индексировать, переиндексировать страницы, удалять из индекса, устанавливать глубину индексирования. Интерфейс легко настраивается с помощью шаблонов. Скрипт использует базу данных mysql.2) PhpDig также бесплатен, использует базу Mysql и не менее известен, чем Sphider. Однако, как мне показалось, он уступает в скорости последнему.3) RiSearch написан на Perl + PHP и не использует Mysql-базу данных, что является минусом. Есть проблемы с релевантностью предоставляемых данных.4) платный скрипт MnogoSearch. Обладает огромными возможностями, в том числе поддержкой различных баз данных, командной строки. Существуют различные версии для Unix- и Windows-серверов, а также различные версии в зависимости от типа используемой базы. Lite-версия стоит 99$.

Второй вариант — использовать бесплатный сервис Google Coop, который позволяет создать свою систему поиска по заданным критериям, используя всю мощь Google или сервис Яндекс.XML, который также позволяет использовать Яндекс при создании своего поисковика. Только это уже не совсем альтернативная посковая система, а своеобразная надстройка.

Кстати, есть также проект Flexum, который позволяет создать пользовательский поиск на платной или бесплатной основе.

Таким образом, создать свою полноценную поисковую систему можно, однако она будет довольно слабенькой. Зато создать поиск, скажем, по сайтам определенной тематики, проще простого. Что называется, Google Coop в помощь.Подводя итоги, хочется сказать, что есть еще интересные по-своему проекты. Стоит лишь зайти на http://altsearchengines.com и убедиться в этом самому.

Комментарии

www.ravadir.ru

Как сделать свой поисковик или моё хождение по граблям

Многие новички в сфере «вебмастеринга» (назовём это так) в какой-то момент обретают «гениальную» идею, «а не замутить мне свой поисковик?! продавать рекламу, рубить бабло!». Признаюсь, было и у меня такое… 3 раза.

Поисковик по рунету — убийца Яндекса

Насобирал ссылок по тематике, стал изучать, перелопатил всё, что обнаружил по Апорту и Яндексу. Скачал несколько бесплатных движков с пауками, но «знаний» не хватило, даже чтоб их просто поставить. Голь на выдумки хитра: взял скрипт каталога (без бд, на txt файлах), с поиском по базе сайтов и стал наполнять его сайтами: вначале сам, потом нанял модератора. И что бы вы думали? Разумеется, затея провалилась, но появились идеи, которые вылились поисковик по книгам, о нём — далее.

Поисковик по книгам

Покопавшись в немногичисленных партнёрках рунета (2004-2007 года примерно), взял две книжных: Колибри и Болеро, причина выбора проста — в обоих случаях из партнёрского интерфейса можно было выкачать базы данных с товарами этих магазинов. Информации в базах было мало: название книги, автор, адрес на сайте магазина. Но этого хватило чтобы создать каталог+поисковик. Причём по книгам выдавались и аннотации (парсились в режиме реального времени с сайтов магазинов, да, о кэшировании я тогда и не подозревал, равно как и не пользовался автоматическим редиректом…).

Книжный поисковик успехом не пользовался, но каталог приносил тоны нефти трафика с Яндекса, соответственно продажи книг. Большинство покупок были с доставкой почтой, наложенным платежом, поэтому поступлений на счёт ждать приходилось месяцами… Почта России.

Убийца Гугла

Основное направление моей работы было в «буржунете», в частности работал с PPC, преимущественно с Юмаксом, а посему в качестве «движка» для следующего поисковика выбрал их фид. Вооружившись php (а точнее переделав парсеры книжных каталогов), научился добавлять к выдаче дополнительную информацию соответственно запросу пользователя, картинки и т.д (прям как сейчас начал делать Гугл🙂 ).

И тут случилось прекрасное. Поисковики: Мсн (ныне — Бинг) и Гугл начали индексировать результаты выдачи «моего поисковика» и радовать трафиком, который в свою очередь щедро оплачивался Юмаксом.

И пока коллеги клепали доры, я клепал такие поисковики: разные дизы, разные источники для дополнительной информации. Зачем делать доры и перенаправлять трафик на фид, рискуя попасть в бан из-за редиректа, когда можно делать, например, тематические мини-сайты, без редиректа? Белые дорвеи, кажется так сейчас их принято назвать.  Идилия длилась не долго — меньше года. Смены алгоритмов в начале на мсн, потом и у Гугла похоронили подобные решения (точнее, сделали их куда менее эффективными).

Где-то во время краха «системы» в мсн, я «с горя» взял один из забанненых доменов — adne.info и перенёс на него блог, который ранее вёл то на каком-то форуме, то в рамках сайта рекламного агентства.

3 раза! 3 раза наступал на похожие грабли: некоторые люди не учатся даже на собственных ошибках:)

Подпишитесь на нашу рассылку и получайте то, что не вошло в блог, анонсы и тематические подборки + несколько руководств (сбор подписчиков и продажа информации).

adne.info

Создайте свою собственную поисковую систему.

Казалось бы трудно поверить, что кто-то сможет соперничать с Google или Яндекс путём создания свой собственной поисковой системы. Но это может произойти, если довести эту идею до конца. Но если вам пришла мысль создать свою поисковую систему. То помните, что фокус не в том, что б напрямую соперничать с Google. Вместо этого вы должны занять противоположную, альтернативную позицию, и тогда, возможно ваш сайт станет поисковой системой будущего.

Интернет слишком огромное место для того, что бы быть полностью осмысленным, и он становится всё больше и больше с каждым днём. Поэтому становится невероятно трудно найти в нём что-то. Если вы не знаете адреса сайта, который хотите посетить, шансов найти его в поисковых системах становится всё меньше с каждым днём.

Самый большой недостаток поисковых систем это их неточность. Если вы захотите найти сайт на определённую тематику, он тут же затеряется в куче других сайтов на различные темы. Это означает что есть все предпосылки создания новых поисковых систем. Представьте себе целую сеть таких систем, специализирующихся на различных тематиках. К примеру вам нужно найти сайт на медицинскую тематику, и вы обращаетесь к поисковой системе, содержащей только сайты на эту тему. Так же если вам нужна информация об инвестициях, вы можете поити в систему, содержащую сайты только на эту тему.

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

Когда дело дойдёт до создания фактического двигателя для поисковой системы, в Интернете есть множество учебников на эту тему. Так же стоит позаботиться о выборе хорошего доменного имени. Ещё вы должны быть в состоянии обойти множество сайтов вашей тематики, чтоб включить их в поиск, и создать для своего поиска хорошую рекламу.

finance-and-business.ru

Как создать свою поисковую систему?

Гость Как создать свою поисковую систему и что для этого нужно?Дополнено (1). Деннис, в создании регионального поисковикаДополнено (2). Деннис, может и пора ) Только с региональным поисковиком так не выйдет! Нужны фактические данные, куча недаработок, работать над ранжированием…Дополнено (3). Вопрос сформулирован правильно! Вопрос - и что для этого нужно… Имеет статистический характер, что еще не хватает и что нужно для этого, возможно создадим и сделаем лучше )Дополнено (4). Дикая Лань, банки с воздухом Санкт-Петербурга ) Из воздуха деньги деньги делают в прямом смысле этого слова, а работаю на воздухоразделительной установке металлургического завода. Проект http://lipetsk.flexum.ru/ над которым я работаю не приносит прибыли, создан для людей!

claustrophobia Нужен здравый смысл: а оно надо?

Newone Накопить стопицотмильёнов денег. А потом второй вопрос сам по себе ответится

UPD

Зря минус поставили. Сайт красивый, но это не поисковик. Когда он захочет быть настоящим поисковиком, я думаю выглядывать он будет из нехилой аппаратной с человеком, который будет бегать весь день меняя вылетевшие винты в раидах. Ну а до того наверное долго ползать и догадываться, Липецк или не липецк? Ну и в целях оптимизации лишица большинства JS а особенно AJAX и IFRAME. Вы ведь и сами понимаете, сложно изобрести новый велосипед, особенно, если люди научаца расширенными опциями гугла пользоваться, а тем более, если этот Велосипед будет невостребованно пылиться в Липецкой области.

не, мож в какую программу гос-ую удастся попасть, тогда да, круто, герб на главную и может смысл обретется =)

Гость Для этого нужны или гениальные менеджеры, или принципиально новые поисковые алгоритмы. Или всё вместе. С какой целью интересуетесь?

Гость Почему регионального? И какой регион? Если Москва, ищите выход на "Алмаз". Хотя, даже если не Москва. Всё равно ищите. [email protected] Гугл-талк. Как Вы поняли, не сплю. Есть желание, стучите.

Гость Прочитал профиль. Изучаю поисковик.

Гость У Вас же уже есть региональный поисковик. Может быть, пора выходить на международный уровень?

Гость Я понимаю. Просто поисковик уже есть. Тогда вопрос сформулируйте по другому. Кстати, ничего не знаю про Липецк, но сам поисковик приятный. Серьёзно.

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

Дикая Лань Супер! Это такая реклама Флексума? Уважаю ребят. Их переплюнули разве что сувенирщики, продающие банки с воздухом Санкт-Петербурга на Московском вокзале.

Nimaxлучший ответ Есть же

Viking888 Пацталом! У гугля и яндекса все больше конкуренции. Для начала нужно иметь платный хостинг с PHP и MySQL, и домен первого уровня естественно (лишние 1600 есть?) , и еще нужно времени 2-3 месяца шоб это все изучить(кто имеет с этим делом в первый раз), изучаешь значит свой хостинг, а потом еще месяц два вникаешь в скрипты, которые нужно поставить, при этом надо выбрать те которые лучше. Вооля через 5-6 месяцев готов твой поисковик, еще нужно запастись 50 баками, которые пойдут на рекламу. А на фик людям нужен твой поисковик если уже есть гугль, яндекс, яхоо, рамблер и так далее И тому подобное На это же время и на эти же деньги я куплю себе несколько сайтов, и сделаю в 2, 5 раза больше чем получают админы поисковиков. Так и делаю в принципе. Лучше придумай реактивный велосипед, если вздумал бабла срубить.

mysqlru.com

Как бесплатно сделать собственный поисковик?

Поисковая система содержит массу информации и позволяет пользователю извлекать данные. Без поисковых систем Интернет это лабиринт веб-страниц с ограниченным значением. Стоимость создания поисковых систем и эксплуатационные расходы могут быть высокими, но, к счастью некоторые провайдеры поисковых систем позволяет пользователям создавать поисковую систему с помощью своей инфраструктуры бесплатно. Они позволяют создать собственную поисковую систему без затрат и времени на строительство с нуля.

Вещи, которые вам понадобятся:Веб-браузерАккаунт Google

Шаг 1

Откройте веб-браузер и перейдите к Google Custom Search Engine 

Шаг 2

Нажмите на кнопку «Создать систему пользовательского поиска».

Шаг 3

Войти с Google ID и паролем.

Шаг 4

Введите имя, которое вы хотите дать своей поисковой системы в текстовое поле "Search Engine Name"(“Название поисковой системы”).

Шаг 5

Введите краткое описание вашей поисковой системой в текстовое поле "Search Engine Description".

Шаг 6

Введите веб-сайты, которые вы хотите найти в текстовое поле с надписью "Sites to Search"("Сайты для поиска").

Шаг 7

Установите флажок, подтверждающий то, что вы прочитали и согласны с условиями предоставления услуг Google. Нажмите на кнопку "Далее" ("Next"), чтобы продолжить.

Шаг 8

Нажмите на кнопку «Готово» ("Finish"), чтобы завершить создание своих поисковых систем.

Шаг 9

Нажмите на ссылку "Панель управления" ("Control Panel") справа от названия поисковой системы, которую вы создали.

Шаг 10

Нажмите на ссылку под названием "Основная информация"("Basic Information") с надписью "Домашняя страница" ("Homepage") для перехода к странице, которая содержит новый движок поиска. Добавить страницу в браузере, чтобы использовать поисковую систему с любого компьютера.

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

goldwebmaster.net

Как добавить сайт в поисковики: пошаговая инструкция

Доброго времени суток!

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

Наилучшей рекламой станет топовая строка при выдаче ответа на запрос в поисковой системе.

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

Каким образом интернет пользователи узнают о том, что в Сети появилось новое творение? На него начинают выдавать ссылку поисковые системы – Яндекс, Google, mail и прочие.

Добавляем сайт в поисковую систему самостоятельно

Предварительная проверка

Сначала давайте разберемся, что такое индексация web-страницы.

Индексация — это процесс занесения роботом-поисковиком web-страницы в индекс поисковой системы (Яндекс, Google и другие)

Поскольку индексация – своего рода проверка, стоит еще раз трезво оценить готовый веб-сайт, убедиться, что он готов для оценки программой-роботом.

Ресурс понравится поисковику, если он доведен до ума:

Проблемы с индексацией могут возникнуть именно из-за того, что страницы «сырые», перегружены выпадающими блоками, ресурс неправильно структурирован, излишне иллюстрирован или не раскрывает заявленную тему. Причин может быть много.

На основе своих наблюдений могу сказать, что в индекс попадают абсолютно все сайты, даже самые неказистые. А требуется на это примерно 3-4 недели.

Правильная оптимизация сайта по всем правилам – это отдельная тема. В качестве примера можете взять мой блог. У меня не всё идеально, но основные моменты учтены =)

А рекомендации Яндекса по продвижению web-сайта в интернете читайте здесь.

Процесс добавления

Для того чтобы добавить сайт, нужно сначала создать свой аккаунт в поисковике, будь то Гугл, Яндекс или майл, исключение составляют Рамблер и Yahoo. После регистрации появляется доступ к кабинету вебмастера, туда нужно добавить свой сайт.

Вот необходимые ссылки:

Далее, алгоритм действий следующий:

  1. Необходимо указать адрес ресурса
  2. Пройти аутентификацию – доказать, что сайт регистрирует владелец, имеющий на это право
  3. Создать карту вебсайта и сообщить об этом поисковой системе. Она поможет поисковому роботу оценить потенциал нового портала, быстро проиндексировать все страницы. Для создания карты обычно используют плагин для WordPress — GoogleXML-SiteMap
  4. А также желательно создать файл robots.txt, который говорит поисковым роботам, какие страницы нужно индексировать, а какие – нет. Этот файл необходимо загрузить в корневую папку сайта. Как правильно создать этот файл robots.txt — отдельная тема. У меня он такой:

Инструкция была приведена на примере вебмастера Яндекса. В google и других поисковиках инструкция примерно такая же.

Аддурилки – что это и с чем их едят?

Крупнейшие системы поиска: Яндекс и Гугл — располагают специальными формами, заполнив которые можно надеяться на более оперативное появление новой веб-странички в сети. Их называют аддурилками.

Для получения желаемого результата достаточно указать адрес страницы и заполнить окошко с каптчей (если нужно).

Как видите, работа по добавлению сайта и его страниц в поисковики – не сложная, однако если есть желание раскрутить сайт, поднять его высоко в топе, то нужно, как минимум:

одним словом, делать все, чтобы веб-ресурс был «живым», рос и развивался, а не оставался макетом.

Статья: как правильно писать статьи для сайта / блога

Ускорение индексации с помощью ссылок

Современные поисковики самостоятельно распознают и индексируют новые интернет ресурсы. Но для того чтобы это произошло быстрее, на новый портал должны вести внешние ссылки с других сайтов. О том, как разместить подобные ссылки – разговор отдельный. Вкратце, вариантов несколько:

Обмен линками между сайтами

Подводный камень виден даже с поверхности: крупные, раскрученные ресурсы не заинтересованы в размещении рекламных ссылок новичков, поскольку те ничего не могут дать взамен. В данном случае вероятен вариант платных перенаправлений, но они выгодны только в том случае, если владелец уверен, что его ресурс в скором времени начнет приносить хороший доход и окупит вложения.

А вообще поисковики наказывают за обмен ссылками и за их покупку =) Все ссылки должны появляться естественно.

Размещение гиперссылок в каталогах поисковых систем

В интернете работают электронные каталоги, содержащие упорядоченную информацию о сайтах согласно их тематике. Регистрация в каталогах существенно повысит вероятность популяризации ресурса. Сделать это можно как бесплатно, так и платно.

Подобрав подходящие каталоги, зарегистрируйте в них свой сайт и ожидайте результатов.

Вот три самых известных каталога:

На этом всё. В этой статье я рассказал вам, как добавить свой сайт в поисковики и вообще, как происходит индексация новых web-ресурсов.

Применяйте полученные знания. Задавайте вопросы в комментариях.  Делитесь статьей в социальных сетях со своими товарищами и друзьями.

Подпишитесь на обновления блога, тогда все новые статьи вы будете получать прямо на свой email. Это очень удобно.

Всем пока и до скорых встреч!

С уважением! Абдуллин Руслан

Понравился блог? Подпишись, чтобы получать новые статьи на почту и быть в курсе всех событий!

abdullinru.ru