Европейское отделение фонда свободного программного обеспечения (FSFE) представило версию 1.0 проекта YaCy, в рамках которого разработан поисковый движок с открытым исходным кодом, отличающийся децентрализованной архитектурой и использованием технологий P2P (peer-to-peer). Ключевой задачей YaCy является обеспечение защиты персональных данных и гарантирование конфиденциальности запросов. Исходные тексты всех наработок проекта распространяются в рамках лицензии GPLv2.

В рамках проекта YaCy разработан кардинально новый подход к решению проблемы организации независимого поиска, сконцентрированный на идее отказа от использования центрального сервера, вместо которого результаты поиска формируются при участии независимых друг от друга узлов распределённой сети, состоящей на сегодняшний день из более чем 600 узлов. В подобной распределённой сети ни один из элементов не может единолично решить, что именно будет отражено в поисковом выводе (исключается возможность цензуры) и в каком порядке будут показаны результаты. Движок работает непосредственно на компьютерах пользователей, использующих поисковую систему. Иными словами, каждый из пользователей YaCy является частью большой поисковой сети и непосредственно принимает участие в обеспечении её работы. Условия поиска шифруются перед тем, как покинуть компьютер пользователя.

Карстен Герлофф (Karsten Gerloff), президент Европейского отделения фонда Free Software Foundation, заявил: "Мы отходим от концепции централизованного контроля за службами. Мы понимаем важность независимости и необходимость создания инфраструктуры, не зависящей от какого-то одного самого слабого звена... В мире будущего, состоящего из распределённых пиринговых систем, свободные поисковые движки, подобные YaCy, являются жизненно важным составным элементом". Майкл Кристен (Michael Christen), лидер проекта YaCy, подчеркнул мотив создания проекта: "Почти все наши действия в Интернете так или иначе связаны с поиском. Это жизненно важное звено между нами и информацией, которую мы ищем. В таком важном деле мы не должны зависеть от нескольких больших компаний, при этом открывая свои личные данные".

Движок уже используется для локального поиска на таких сайтах, как sciencenet.kit.edu, yacy.geocaching-portal.com и fsfe.org. Попробовать YaCy в деле можно на сайте search.yacy.net. Стать членом сети YaCy можно установив на свой компьютер специальное программное обеспечение, написанное на языке Java и доступное для платформ Linux, Windows и Mac OS X. Сеть уже работает и на текущий момент содержит в индексе более 1.4 млрд документов, обрабатывая примерно 130 тысяч поисковых запросов ежедневно.

По своей структуре YaCy состоит из нескольких базовых компонентов, свойственных стандартным поисковым системам: поисковый робот (crawler) для загрузки страниц; индексатор для парсинга и анализа загруженных документов; БД для хранения поисковых индексов и метаданных (используется собственная NoSQL БД, использующая структуры AVL-Trees); интерфейс пользователя. На каждой машине накапливается собственный локальный поисковый индекс, который является частью общего индекса сети.

Каждый пир в поисковой P2P сети хранит определённный фрагмент общего индекса, обмениваясь данными о своём контенте с другими пирами. Сам глобальный индекс представлен в виде распределённой хэш-таблицы (DHT - Distributed Hash Table). Части индекса многократно дублируются, поэтому постоянное отсоединение и подключение новых пиров не приводит к потере информации.

По желанию пользователя его машина может принимать участие в сборе и анализе данных для формирования индекса, но даже если пользователь просто подключился для отправки поискового запроса, часть индекса копируется на его машину и в дальнейшем может использоваться для обслуживания собственных запросов и запросов других участников. Размер выделяемого под локальный индекс дискового пространства и степень участия в работе P2P-сети выбирается пользователем. Операции индексации страниц могут выполняться локальным краулером или инициироваться для распределённого краулинга с привлечением других участников сети. Обнаружение других участников P2P-сети производится через обращение к 4 предопределённым seed-серверам. Отключив в настройках участие в P2P-сети пользователь может использовать YaCy для организации поиска по собственным ресурсам, в этом случае YaCy выступает в роли локального поискового движка.

Источник: http://www.opennet.ru/opennews/art.shtml?num=32411