- Как создать свой поисковик и возможно ли это сделать самостоятельно?
- Как создать свой поисковик и создать конкуренцию известным «поисковым гигантам»
- Как создать небольшой локальный поисковик на своем сайте
- Заключение
- Поисковые технологии или в чем загвоздка написать свой поисковик
- От поисковика на сайте до собственной поисковой системы
- А что там с платным Elactic Site Search?
- Давайте посмотрим, что там у нас под капотом у Kavunka 2.1
- Более подробнее о веб-скрепинге
- Особенности и недостатки
- Где можно увидеть пример и как установить?
Как создать свой поисковик и возможно ли это сделать самостоятельно?
Каждый пользователь в и нтернете может назвать несколько популярных поисковых систем. Но при это м некоторые из них не оставляют идею создать собственную такую систему, поэтому вопрос: «Как создать свой поисковик?» остается на слуху.
Свой поисковик может быть двух типов :
большая поисковая система, которая будет работать по всему и нтернету и составлять конкуренцию 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. Но это лишь умозрительно, я, по крайней мере, готовой реализации не встречал.
А что там с платным Elactic Site Search?
За поиск только по одному домену до 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» и попытаться найти интересующую Вас информацию на том сайте, который вы отсканировали.
Источник