Поисковая система своими руками

Как создать свой поисковик и возможно ли это сделать самостоятельно?

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

Свой поисковик может быть двух типов :

большая поисковая система, которая будет работать по всему и нтернету и составлять конкуренцию Google, Яндекс, Bing и др. ;

небольшой поисковик, организованный на своем сайте с различными свойства поиска.

Как создать свой поисковик и создать конкуренцию известным «поисковым гигантам»

Создать свой поисковик на подоби е Гугла и Яндекса , на самом деле , не так сложно. Любой более-менее уверенный в себе разработчик сможет это сделать. Любой поисковик состоит из 3-х основных элементов:

Базы данных с сайтами для их индекса.

Поисковый робот, который будет обходить сайты и обновлять /добавлять информацию о них в базу данных.

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

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

нанять высококвалифицированных специалистов и организовать им рабочее пространство;

оборудовать собственный дата-центр или арендовать мощности у надежной компании;

быть готовым в течение нескольких лет терпеть убытки.

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

Почему люди в основном пользуются Гуглом или Яндексом (или другими)? Потому что им там комфортно и им там нравится. Поэтому, чтобы пользователи перешли именно к вашему поисковику, вы должны стать лучше.

Вот и получается, что создать свой поисковик не трудно, но вот развивать его и сделать конкурентоспособным — на это потребуется не мало усилий и финансовых вложений. Но с другой стороны, Гугл тоже когда-то был в позиции «новичка», а в кого он превратился спустя годы упорного труда — мы все прекрасно видим.

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

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

Небольшой локальный поисковик — это более «приземленная» идея поисковой системы. И в некоторых ситуациях подобный поисковик будет работать эффективнее, чем глобальный Гугл с Яндексом. Например, когда вам нужно ограничить объем поиска. Допустим , у вас есть некий веб — ресурс, который ведет взаимоотношения с 500 поставщиками и 400 различными партнерами, плюс в качестве дополнительной информации вы используете еще 900 разных источников. Вы можете организовать собственную поисковую систему на 1000+ источников, чтобы вашим клиента м было проще искать нужную информацию, касающуюся ваших услуг или товаров. Если они будут это делать через глобальную поисковую систему, то в выдаче у них будет очень много «мусора», который , по сути , им никогда не пригодится. А ваша ПС даст именно те результаты, которые нужны вашим клиентам.

В качестве дополнения собственная тематическая ПС — это:

удобство поиска для ваших клиентов;

дополнительный способ монетизации вашего проекта;

много плюсов к вашему престижу, брендингу и узнаваемости.

Что самое интересное — подобные локальные системы организовать довольно просто. В сети есть масса готовых решений по этому поводу. Сам ое узнаваем ое решени е — это создать свой поисковик, используя поисковый потенциал Google. Для этого пройдите по ссылке .

Читайте также:  Лайфхаки самоделки своими руками

Заключение

Теперь вы знаете, как можно создать свой поисковик. Если это будет глобальная поисковая система, то к этому нужно подготовит ь ся финансово и морально. Если локальный поисковик на собственном сайте, то самый простой способ — это использовать готовое решение. При этом если вы с программированием на «ты», то для вас не составит труда создать свой собственный поисковик с нуля.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

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

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

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

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

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

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

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

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

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

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

Источник

От поисковика на сайте до собственной поисковой системы

В этой статье хочу обсудить с Вами такую проблему как поиск на сайте и предложить свой вариант ее решения. В сети огромное множество сайтов, которые оснащены отвратительным поиском, еще больше сайтов вообще без этой функции. Даже вошло в привычку не искать на сайте, а вбивать в поисковик «запрос site:domain.com» или просто «запрос domain». Почему такой важной вещи, как поиск, уделяется так мало внимания? Давайте разбираться вместе.

Читайте также:  Коврики для душевой кабины своими руками

Давным давно, когда можно было увидеть Pege Rank, а вебмастера играли на ТИЦ в карты, я создал свой первый сайт на тему автомобилей. Работая на простой CMS, он висел на дешевом хостинге без возможности установить базу данных. Тогда впервые мне пришла идея претворить свой первый проект в крупный портал с удобным поиском. Как только я поделился этой идеей со своим другом, который в то время успешно занимался разработкой и продвижением сайтов в поисковых системах (ПС), сразу же получил неутешительный фидбэк. Мол, это возможно, и даже одному клиенту он попытался это сделать, однако это настолько сложно, что проще сделать еще несколько сайтов и добавить их в сапу, чем заморачиваться над одним проектом с туманными перспективами монетизации. Что-то подобное я уже слышал от сварщика дяди Васи, когда пришел к нему с просьбой сварить две алюминиевых детали. Он долго рассказывал о специальных электродах, которых у него нет в наличии, аргоне, и что в молодости он с напарником из алюминия смастерил небольшой летательный аппарат, но в моем случае проще отказаться от алюминия и сделать все из обычного железа.

С тех пор прошло много апдейтов ПС, и что же мы видим сейчас? Есть ли простое и быстрое решение, дабы сделать поиск на сайте? Так сказать, появилась ли у дяди Васи аргоновая сварка? Расцвели ли яблони на Марсе? Провел ли Илон Маск тест-драйв новой Tesla Mars? Запустили ли Джеймса Уэбба в космос или до сих пор его тёзка переворачивается в гробу?

Итак, вернемся к нашим баранам. Когда говоришь фразу «поиск на сайте», у ребят, которые в теме, сразу есть готовый ответ Elastic или Sphinx. А когда говоришь «собственная поисковая система», то они отвечают — Elactic Site Search, но это очень дорого! Так, стоп, здесь, пожалуйста, поподробнее! Есть бесплатное решение, а есть такое же, но по высокой цене. Кто покупал Windows у Microsoft в нулевых, когда работали радиорынки?

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

За поиск только по одному домену до 5К страниц необходимо будет заплатить $79/month, а если нужен поиск по большему количеству сайтов и страниц, то — $199/month + $30 за каждый сайт и столько же за каждые дополнительные 5К страниц. Если я захочу сделать поисковую систему, где будет 1000 интернет магазинов, то это будет стоить $199 + $30*1000 = $30 200 без одного доллара в месяц?

А как это вывести в профит?

А ведь так хотелось сделать поисковик, в котором можно было бы искать рецепты с картинками или агрегировать сайты по недвижимости и выводить в серпе адрес, планировку квартиры, телефон продавца/арендодателя или собрать информацию о продаже автомобилей со всех досок объявлений и не только.

Неужели все эти мечты разобьются о непреодолимую скалу высотою в $30 200/month? Неужели мечты о собственной поисковой системе останутся лишь слабыми электромагнитными импульсами в глубинах моего мозга, периодически вспыхивающие воспоминаниями в момент троллинга знакомыми программистами, которые неосторожно были посвящены в эту безумную идею?

Нет! Not! Non! Net! Não! No! Nie! Нi!

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

Читайте также:  Летние брюки своими рукам

Давайте посмотрим, что там у нас под капотом у Kavunka 2.1

Более 20K строк кода чистокровного Си будут стабильно работать на одном ядре с 1 GB RAM под управлением CentOS 7 и держать в индексе 10 сайтов по 1000 страниц. Если у Вас домашний ПК или сервер с большим объемом оперативной памяти, то легко можно загнать в индекс миллионы страниц. Кеш с индексом одного миллиона будет весить всего 150GB. Вы спросите, почему так мало? Потому что в кэше хранится чистый текст без тегов и javascript — кода.

Как было уже сказано выше, софт распознает 8 языков: ru, en, it, fr, pt, es, pl, uk. В индекс попадут страницы нужного вам языка, а встроенные алгоритмы будут фильтровать страницы с неуникальным контентом и плохим качеством.

В Kavunka 2.1 реализован стемминг, добавлена возможность присоединять к выдаче результаты веб-скрепинга, это позволило сделать выдачу более репрезентативной. Для сканирования javascript сайтов предусмотрен способ получения html-кода с помощью Firefox при использовании Selenium WebDriver.

Более подробнее о веб-скрепинге

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

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

Управление поисковой системой и мониторинг процесса сканирования осуществляется с помощью дружественного веб-интерфейса. Администратор ПС максимально избавлен от необходимости работать с консолью.

Особенности и недостатки

Основной особенностью является то, что Kavunka не использует базы данных, индекс и данные хранятся в файлах. Является ли это недостатком? Считаю, что нет! Теперь, справедливости ради, о недостатках:

  • ассоциативный массив состоит только из словоформ запроса;
  • отсутствует база знаний;
  • отсутствует сознание и, как следствие, поисковая система не может рассуждать о смысле жизни.

Где можно увидеть пример и как установить?

В качестве демонстрации я создал агропоисковую систему. Можете посмотреть на результат запроса «саженцы абрикосов» или «клубниииииика»

Для установки поисковой системы нам понадобится CentOS 7 с уже установленными apache и php. Устанавливаем wget:

Скачиваем скрипт, который произведет необходимые настройки и установит софт:

Делаем скрипт kavinstall.sh исполняемым, устанавливаем владельца и приступаем к установке:

Далее величайшее произведение Казимира Малевича будет осквернено следующими надписями:

На первый взгляд кажется все предельно понятным, но позвольте мне дать некоторые рекомендации:

  • если Вы максималист и хотите взять от ПС все по максимуму, не раздумывая, жмите 1;
  • если Вы оптималист и не собираетесь добавлять в поисковую систему javascript-сайты — пункт 2 то, что Вам нужно;
  • если же Вы скептик, и доверяете только известным брендам в сфере поиска, пункт 3 создан специально для Вас.

После завершения установки и перезагрузки сервера необходимо в браузере набрать http://[IP-address]/kavunka-admin/

[IP-address] — комбинация натуральных чисел и точек, которые можно узнать, набрав в консоли волшебную последовательность букв:

На этом этапе Вы должны попасть на страницу авторизации (admin:123456). Далее Вас будет ожидать зеленая надпись «Getting License!» требующая ввести License ID и KAY. За всем этим отправляемся сюда, регистрируемся и создаем лицензию в CL Panel. В поле «Server IP» необходимо ввести внешний IP-адрес. Для получения используйте:

Выбираем язык и жмем +New. После этого будет сгенерирована лицензия с определенным ID и KAY. Срок действия лицензии составит 14 дней, если Вы не собираетесь использовать программное обеспечение Kavunka в коммерческих целях, по запросу в сапорт ее можно бесплатно подлить на 180 дней.

Процедура добавления сайтов очень проста. Переходим во вкладку «TASKS», нажимаем длинную синюю кнопку «add+», выбираем «Octopus» и в поле «Start Page» вводим страницу, с которой краулер начнет сканировать сайт. Если Вы не максималист и не хотите сильно нагружать сканируемый сайт, уменьшите число в поле «nit» до 200. Далее опять длинная кнопка «add+», выбираем «Worder», жмем «OK», и последний раз жмем «add+» потом «Kavunka» и «OK». В бордовой таблице «List Table» находим кнопку «Start», жмем, выбираем «Start» потом «OK». Теперь можно откинуться на спинку кресла и наблюдать, как работает поисковая система. После завершения всех процессов, вы можете перейти во вкладку «SEARCH» и попытаться найти интересующую Вас информацию на том сайте, который вы отсканировали.

Источник

Оцените статью
Своими руками