Ссылочку тут мне сегодня подкинули, просто шикарную. Публикую без изменений, т.к. здесь и для меня абсолютно новая информация) И, по-моему, крайне интересная. Тем более, что статья написана программистом. И именно поэтому она равно любопытная и сложная для остальных. Всё таки эти ребята знают множество полезных вещей. Итак:
И таки здравствуйте, дражайший читатель.
Сегодня речь пойдёт о такой специфичной для Web вещи, как поиск по интернетам. Да, все мы безусловно знаем и кошерный Google, и трефной Yandex. А ещё кучу всяких поисков помельче – рамблер, апорт, за рубежом популярен ещё Yahoo. Вроде бы – поиск да поиск, что тут такого? Алгоритмы индексации там, все дела – у всех почти всё одинаковое, и кто-то ищет получше, кто-то похуже, а кто-то и вовсе как яндекс выдаёт на первое место рекламу, и, возможно, проплаченные позиции. Но это лирика. У всех этих поисковых систем есть серьёзный недостаток (при наличии весьма большого числа достоинств). Знаете какой? А это фильтрация поиска. Вам дают то, что разрешено искать. Скажем, если вы попытаетесь найти что-то, что в этом поиске запрещено, то он вам ничего не покажет. За примерами я ходить не буду – сами найдите, но факт в том, что поисковики тесно сотрудничают со всеми заинтересованными лицами, и по их требованию/заказу удаляют из индекса массу кошерных вещей. Печально? Таки да, дражайший читатель. И что же делать?
Сеть YaCy Peer
Я уже не удивлён, что весьма интересные вещи из области технологий децентрализации придуманы в Германии. Стране жареных сосисок, отличного пива, и благоприятной, до некоторых пор, политики иммиграции. Знаете, есть старый такой прикол, и я кажется писал его уже где-то тут, о четырёх правовых моделях: английской – можно всё, кроме того, что нельзя; немецкой – нельзя ничего, кроме того, что можно; французской – можно всё, даже то, чего нельзя; и русской – нельзя ничего, даже то, что можно. Так вот, в странах с наиболее жёсткими моделями (к их числу относится и эта ваша франция, которая, как и все европейские страны, понемногу скатывается к немецкой модели), рождаются поистине гениальные решения по обходу «нельзя ничего, кроме…». Да, дражайший читатель, как ты уже возможно догадался – немцы придумали распределённый поиск – распределённый поисковый движок, если точнее. Называется он – YaCy (читается как ya see). Работает он по технологии, весьма близкой к торрентам – у каждого пользователя (т.н. YaCy Peer’а) есть локальный поисковый робот, индексатор, база. А также небольшой веб-интерфейс для доступа к результатам поиска. Поисковый робот шарится по интернетам, со ссылки на ссылку, с сайта на сайт, и собирает контент, после чего индексирует его через так называемый Reverse Word Index (RWI) и складывает в локальную поисковую базу. Плюс данная система относится также и к очень мной любимым оверлеям.
У вас, читатель, наверняка возникли закономерные вопросы, если вы представляете более-менее о чем идёт речь. Например – какого размера будет поисковая база? На самом деле довольно небольшая по современным меркам – она сохраняется в так называемую DHT – распределённую хэш-таблицу. Скажем, если вы выделите под неё 10 гигабайт на жёстком (можно и 1, зависит от размеров персональной жабы, но в среднем допустим пусть будет 10), то при 450 пирах (которые отображаются на карте поискового кольца) вы получите 4500 гигабайт, или около 4,5 терабайт места под общий индекс. А кто-то ведь выделяет и больше. Так что это уже довольно неплохой результат. Причем, если верить статистике на - то по 600 человек присоединяется ежемесячно, сеть обслуживает более 130 000 поисковых запросов в сутки, и в индексе находится уже более 1 400 000 000 документов, причем их становится с каждым днём всё больше и больше (роботы всасывают контент без остановки). Это весьма неплохо для малоизвестного проекта (я подозреваю, вы и не слышали раньше о YaCy, а если и слышали – то пришли сюда как раз почитать, что это такое).
«А на чем он работает»? Работает – т.е. устанавливается и начинает всасывать страницы – он на чём угодно: windows, linux, macos… Это достигнуто за счёт всё той же Java. Yes, YaCy is written on Java :) И не надо плеваться – мол, медленно работает, все дела… Если у вас медленно работают ява-программы, то выбрасывайте компьютер, он безнадёжно устарел. Тем более в здравом уме никому не придёт в голову – ставить поисковый движок на нетбук, к примеру. Я вообще в последнее время прихожу к той мысли, что на современные средства разработки плюются в основном снобы, желающие казаться умнее, чем есть. Но в данный момент речь не совсем об этом.
«А где можно посмотреть?». Вообще, к примеру здесь: но на мой взгляд, интерфейс там уёбищен, а алгоритмы не отлажены (например по слову «Яндекс» он что-то нашёл, а вот «Шпаргалко» уже плюнулся и ругнулся) – очевидно из рашки мало кто участвует в сети, потому англоязычный поиск покамест более корректен. Ещё, если у вас есть I2P (если нет – можете пройти по одной из ссылок внизу заметки и посмотреть что это такое), то можете зайти на – он работает как раз на YaCy, и по русскому сегменту данного оверлея ищет вполне сносно.
Выводы.
Покамест данная поисковая сеть достаточно мало распространена, у неё небольшой поисковый индекс, она только в процессе становления. Аналогично дела обстоят с алгоритмами поисковыми – часто ищет не то, или просто долго. С другой стороны – это уже на текущий момент отличная альтернатива коммерческому поиску – гугол, яху, яндекс… По крайней мере это прикольно – иметь поискового робота у себя на компе, и участвовать в глобальной децентрализованной сети – мало ли, вдруг рано или поздно вам потребуется искать контент, которого нет в официальных поисковиках? Так что скачать и попробовать – а вдруг – абсолютно ни к чему не обязывает, даже если вы удалите клиента – сеть не пострадает. В общем, всё можно отменить в любой момент :) Между прочим данный движок – распространяется под лицензией GPL, т.е. open source – фактически вы, если что-то смыслите в программировании и есть желание – можете поковыряться в его потрохах, посмотреть как устроен поиск, индексатор, и так далее. Уже одно это доставляет технарям :) В общем, вот.
Эпилог.
Между прочим, я это всё написал к чему… На ленте появилась интересная новость – про поиск икстремизьма в интернетах, и то, что сие действо доверят роботу. Объявлен тендер на разработку – 15 лямов сие дело стоит, ага.. Что любопытно, я перед тем как яси нашёл – тоже писал робота поискового на C#, и некоторые алгоритмы в него заложил даже. В принципе, механизм при наличии вспомогательного софта – например PostgresSQL и TsVector – да даже обычный полнотекстовый поиск (или сразу засасывание в БД по ключевикам – тот же тезаурус) решают проблему. По моим прикидкам с таким описанием (прямо скажем – ), и таким функционалом – с работой справится коллектив из 5 программистов за срок от 4 до 6 месяцев. Учитывая среднюю зарплату довольно опытного программёра в 90 к/ мес (при расходах предприятия на него – сумма з.п. + 34% – это около 120 килорублей за месяц он стоит) то вся разработка уложится в 4 ляма + лям-два на откат. А если ещё невозбранно взять имеющиеся наработки, то… :) В общем, тендер таки выгодное дело :) Интересно, а на основе YaCy построить такую систему можно?)))
Источник: http://www.shpargalko.ru/
И отдельное огромное спасибо JulyFlower за эту ссылку.