YaCy
(от
англ.
Yet another Cyberspace
,
Ещё одно Киберпространство
; созвучно с
англ.
Ya see
) —
свободно распространяемая
децентрализованная
поисковая система
, построенная по принципу
одноранговой сети
(P2P). Есть версии для Windows, Linux, MacOSX. Основной
программный модуль
, написанный на
Java
, функционирует на нескольких тысячах компьютеров (по состоянию на 2011 год) участников сети YaCy. Каждый участник проекта независимо
исследует
Интернет, анализируя и индексируя найденные страницы, и складывает результаты индексирования в общую базу данных (так называемый индекс), который совместно используется всеми пользователями YaCy по принципу P2P.
В отличие от частично распределённых поисковых систем, сеть YaCy характеризуется децентрализованной архитектурой. Все узлы эквивалентны и отсутствует центральный
сервер
. Программа может работать в режиме поискового робота или в качестве локального
прокси-сервера
, индексируя страницы, посещаемые пользователем (при этом игнорируются страницы с признаками персональных данных — cookies и т. п.).
Доступ к функциям поиска обеспечивается за счёт локально запущенного веб-сервера, который генерирует поисковую страницу с полем для ввода поисковых запросов и возвращает результаты поиска в том же формате, что и другие популярные поисковые системы.
Программа распространяется под лицензией
GPL
. Проект поддерживает европейское отделение
фонда свободного программного обеспечения
(FSFE).
Проект YaCy был основан Михаэлем Кристеном (
нем.
Michael Christen
) в 2003 году.
Преимущества и недостатки
Преимущества
-
Совместный поиск может быть осуществлён с YaCy практически всегда: всегда есть часть сети, которая будет доступна.
-
Интернет-пользователи поисковика YaCy независимы от компаний, их рейтинга и их цензуры.
-
Программное обеспечение с
открытым исходным кодом
, распространяется по лицензии
GNU GPL
и является бесплатным.
-
При использовании прокси‐сервера клиента он может просканировать страницы из
глубокой паутины
или неиндексированных сетей общего пользования (таких, как
I2P
), которые не могут быть проиндексированными обычными поисковыми роботами, такими как в Google, Yahoo или Bing.
-
YaCy не обязательно связан с участием в общественном YaCy-кластере и может, таким образом, быть использованным в качестве поисковой системы в частных сетях (таких, как внутренняя сеть компании) или в частных поисковых сервисах (и индексах) определённой группы страниц.
-
Чем больше узлов находится в сети, тем меньше данных хранится на каждом узле относительно размера индекса, и тем меньше влияние на сеть изменения количества узлов.
Недостатки
-
Спамеры
, теоретически, могут запускать свои узлы, возвращающие спам в качестве результата. Поэтому клиент имеет функцию проверки страниц на наличие искомого текста.
-
Из‐за того, что YaCy необходимо связаться с другими узлами для запроса и из‐за упомянутой выше (необязательной) проверки достоверности результатов поиск занимает больше времени, чем в традиционных поисковых системах.
-
Главный клиент не ищет различные формы слов.
-
Протокол YaCy организован с использованием индивидуальных
HTTP
-запросов, что влечёт за собой бо́льшие задержки, чем при использовании
UDP
или
TCP
с постоянным подключением.
-
Главный клиент написан на Java и, в существующей реализации, работает медленно. С ростом объёма локального индекса значительно растёт потребление
памяти
и снижается скорость работы. Проверка локальной БД объёмом ~20 Гб может занять несколько секунд, до того, как запрос будет отправлен другим пирам.
-
В общественной сети «freeworld» для поиска по Всемирной паутине в настоящее время представлено относительно мало «активных» «старших» узлов (хранящих накопленный поисковый индекс и отвечающих на поисковые запросы от других узлов), и они могут выдать относительно немного результатов по сравнению с крупными поисковыми машинами. На один узел приходится до нескольких десятков миллионов записей, поэтому их полное перемещение между узлами занимает значительное время, и резкое выключение или добавление значительного количества узлов может временно ухудшить качество сети для некоторых поисковых запросов, как это произошло после выпуска версии 1.0 в ноябре 2011 года, когда количество участников быстро увеличилось примерно до 4000
или 1000
. В начале марта 2012 года «активными» были около 1/6 одновременно работавших узлов.
Программа
Ядро поиска отличается от других поисковых систем — это не центральный сервер, а
программа
-клиент
одноранговой сети
, которая работает на множестве компьютеров одновременно. Результаты поиска отображаются в виде web-страницы на локальном
web-сайте
, который также играет роль web-интерфейса для настройки поисковой системы под нужды пользователя.
В сочетании с дополнительными
P2P
-системами используется
прокси
, который автоматически индексирует посещённые страницы. Индексирование не производится в тех случаях, когда данные передаются через GET или POST, или же используются
куки
(cookies) или
(например, страницы, входящие в определённую запароленную зону).
Тем самым гарантируется, что действительно индексируются только доступные для общественности данные.
Другие функции
-
YaCy обеспечивает всех пользователей прокси-функцией, которая позволяет также подключаться к другим узлам по адресу ИМЯУЗЛА.yacy или ИМЯХЭША.yacyh. www.ИМЯУЗЛА.yacy может быть главной страницей пользователя, под share.ИМЯУЗЛА.yacy находится файлообменник, а ИМЯУЗЛА.yacy это стандартный интерфейс доступа. Другие
поддомены
могут быть специально созданы путём создания папки с именем поддомена.
Динамический DNS
не поддерживается.
-
Кроме .yacy-
домена
, YaCy предоставляет возможность создавать домашнюю страницу и папки, которые могут быть связаны с текущим IP или адресом
динамического DNS
и доступны для не YaCy пользователей.
-
YaCy имеет встроенную функцию передачи сообщений с помощью которой можно отправлять текстовые сообщения (с форматированием вики), а также передавать файлы.
-
YaCy имеет встроенные
вики
и
блог
.
-
Есть управление закладками, которые могут быть общедоступными и личными.
-
Есть возможность внесения отдельных областей в чёрные списки.
-
Есть
OpenSearch
-интерфейс. Каждый узел обеспечивает доступность его по адресу http://<адрес-узла>:<порт-узла>/opensearchdescription.xml, например
. Чтобы добавить вашу персональную поисковую систему YaCy в список поисковых систем Firefox-a нужно открыть этот XML файл в браузере и сохранить его в папку «searchplugins», а затем перезапустить Firefox.
Технология
Программа основана на веб-сервере, который также является
кэширующим
прокси
. Пользователь веб-сервера может получить доступ к оболочке поиска и управления своим собственным узлом. Прокси имеет общий код со сканером, а это значит, что все посещённые через него страницы, которые не являются личными, по умолчанию автоматически записываются в индекс. Кроме того, YaCy предоставляет собственный
домен
в YaCy-сети, который доступен через прокси-сервер. Для поиска в YaCy интегрированы Solr и
Lucene
(для версии 1.6 это версии 4.3)
Распределённый индекс
В отличие от файлообменных сервисов, результаты P2P-поиска должны быть доступны немедленно. Чтобы достигнуть этого, YaCy использует
распределённую хеш-таблицу
(DHT). Это означает, что все распознанные программой
URL
-адреса и слова отправляются к узлам, которые подходят для хранения соответствующих контрольных сумм слов, узлов или ссылок. При поиске всё работает наоборот: поиск происходит только по узлам, подходящим для хранения хешей URL-адреса для этого слова.
Таким образом, для получения результатов задействуется только часть узлов.
Типы узлов
Сеть YaCy состоит из четырёх различных типов узлов:
-
Новичок
-
Эти узлы не могут быть найдены, потому что новичок не имеет связи с сетью. Таким образом, вы видите только себя, если узел - новичок.
-
Младший
-
Узел находится за
файрволом
. Другие относят его к
младшим
или
потенциальным
узлам,
они видят только последний его запрос и у них нет способа определить, находится ли он до сих пор в сети.
-
Старший(Senior)
-
На старший можно попасть снаружи и он является полноправным членом сети YaCy. В статистике сети работающие в данный момент старшие узлы называются
активными
, неработающие —
пассивными
.
-
Главный
-
Старший, который выгружает список сидов, используемый для начального соединения с другими узлами.
Протокол
Протокол YaCy состоит из текстовых
сервлетов
, которые обеспечивает встроенный веб-сервер по адресу /yacy/servletname.html. Другие узлы передают данные через GET-параметры и получают ответ в виде простого текста, точный формат отличается для сервлетов.
Начальная загрузка
При начальной загрузке узел пытается связаться с другими узлами YaCy-сети. Сначала ищутся списки узлов. Первый адрес в superseed.txt служит для загрузки устойчивых YaCy-узлов. seeds.txt является ссылками на другие узлы, таким образом устанавливается контакт с YaCy-сетью. В следующий раз, когда вы запустите YaCy, gebootstrapt создаётся из известных с предыдущего запуска узлов сети. В дальнейшем списки узлов будут необходимы, только когда большинство старых ссылок будет недоступно.
См. также
Примечания
-
— 2006.
-
(англ.)
— 2007.
-
(неопр.)
. Дата обращения: 14 декабря 2011.
30 ноября 2011 года.
-
↑
(неопр.)
. Дата обращения: 6 марта 2012.
12 февраля 2012 года.
-
-
(недоступная ссылка)
-
↑
/Network.html
Литература
-
M. Christen:
Peer-to-Peer: Eigenes Suchportal mit Yacy einrichten
in iX 02/2008, S. 102 ff.
-
M. Schlenker:
Gemeinsam gegen Google
in
, 01/2007, November 2006, S. 94-97
-
J. Bager:
Europäische Gegenströmung
in c’t, 2006/10, 2. Mai 2006, S.172-174 (
)
-
R. Sietmann:
Wider die Monokultur. P2P-Strategien gegen die Suchmaschinen-Monopolisierung.
in c’t, 2005/16, 25. Juli 2005, S.52-53 (
)
-
M. Schwarze:
Jedermanns Suchmaschine
in: HAZ (
107 kB)
-
Michael Christen:
YaCy — Peer-to-Peer Web-Suchmaschine
in Die Datenschleuder, #86, 2005, S.54-57 (
1,7 MB)
Ссылки
Ссылки на внешние ресурсы
|
|
|
Тематические сайты
|
|