YaCy
Тип | пошукова машина, проксі |
---|---|
Розробник | Michael Christend |
Стабільний випуск | 1.82 (19 січня 2015 ) |
Платформа | віртуальна машина Java |
Операційна система | багатоплатформна |
Мова програмування | Java |
Доступні мови | багатомовна |
Українська мова | так |
Ліцензія | GPL v2 |
Репозиторій | github.com/yacy/yacy_search_server |
Вебсайт | www.yacy.net |
YaCy (вимовляється "ya see") вільна пошукова машина та пошукова система, побудована на принципах однорангової (P2P) мережі[2][3]. Пошукова система складається з окремих вузлів — примірників програмного забезпечення, написаного на Java, яке користувачі встановлюють на свої комп'ютери з доступом до Інтернет. Кожен вузол самостійно збирає, аналізує та індексує сторінки Інтернет та обмінюється результатами індексації в мережі, формуючи загальну базу даних (так званий індекс), яка зберігається розподілено та використовується разом з іншими вузлами. За допомогою YaCY також можна створити пошуковий портал для внутрішньої мережі або пошуковий портал для власних вебсторінок.
У порівнянні з напів-розподіленими пошуковими системами, YaCy-мережа має децентралізовану будову. Усі вузли рівні, а центральний сервер відсутній. Вузол YaCy може бути запущений в режимі індексування сторінок. Окрім того, вузол може працювати як локальний проксі-сервер для індексації вебсторінок, відвіданих користувачем, який встановив YaCy на своєму комп'ютері; при цьому передбачено механізми для захисту конфіденційності користувача.
Доступ до функції пошуку здійснюється через вебсторінку, доступну локально на комп'ютері, де встановлено програму. Введення критеріїв пошуку та отримання результатів відбувається подібно до інших пошукових систем.
Оскільки програма працює в JVM, то її можна встановити на комп'ютерах з різними операційними системами, такими як MS Windows, Unix, GNU/Linux тощо.
Пошукова система YaCy складається з чотирьох елементів:[4]
- Пошуковий робот переходить з вебсторінки на вебсторінку й аналізує їх вміст.
- Індексатор створює обернений індекс слів, Reverse Word Index (RWI). Кожне слово в RWI має перелік URL адрес, які йому відповідають. Слова зберігаються у формі їх хешей.
- Пошуковий та адміністративний інтерфейси, доступні через вебінтерфейс, забезпечений локальним HTTP сервлетом.
- Банк даних, що зберігає RWI із застосуванням розподіленої хеш-таблиці.
Інформаційне суспільство 21-го століття засноване на вільному доступі до публічної інформації. Особлива увага приділяється прозорості, підзвітності та доступності інформації. YaCy прагне забезпечити безкоштовний доступ до інформації ефективно й реалістично. У той час як традиційні пошукові системи міжнародних компаній є закритими системами та їх технології пошуку не є прозорими та зрозумілими, YaCy має відкритий початковий код і є вільною пошуковою машиною. Кожен може пересвідчитися, яким чином отримується інформація для пошукової системи та відображається в результатах пошуку користувачу.[5]
Існує багато вільного вмісту в Інтернеті, такого як Wikipedia, вільна музика, дані під Creative Commons та іншими вільними ліцензіями, тощо. Однак наявність цих вільних продуктів в Інтернеті не забезпечує їх вільності в повній мірі. У разі використання пропрієтарних пошукових систем у, більшою мірою, монопольній інфраструктурі Інтернету власники цих монополій вирішують, яку інформацію видно. YaCy дотримується позиції, що вільна інформація є дійсно вільної, якщо вона доступна за допомогою вільного програмного забезпечення. YaCy заповнює відсутню ланку між вільною інформацією та користувачем, надаючи вільний пошук.
Інфраструктура Інтернет була побудована на філософії «все для всіх», а не лише на з'єднаннях прийому-передачі. З такої точки зору, кожен споживач вмісту в Інтернеті повинен мати таку ж можливість виробляти вміст, як і споживати. Мета YaCy в тому, щоб допомогти виробникам і споживачам інформації в Інтернеті робити вміст, доступний для всіх людей, незалежно від централізованого пошуку.
Громадянські права та приватність
- Результати пошуку незалежні, виключена цензура[6].
- Унеможливлення централізованої оцінки та моніторингу пошукових запитів.
- Недоступність даних про історію пошукових запитів. Крім захисту приватності, це має значення й для бізнесу з огляду на промислове шпигунство.
Екологічність
- Не потрібна робота центрів обробки даних з величезним енергоспоживанням (а іноді й їх власними електростанціями) для центрального вебпошуку. Розподілений пошук вимагає роботи тільки комп'ютерів вузлів пошуку.
Соціологічні
- Всі учасники мають однакові права, зокрема при додаванні нового вмісту.
- Вміст пошуку визначається користувачами незалежно від комерційних інтересів оператора вебпорталу.
- Індивідуалізація релевантності: кожен може оцінити якість і важливість вебсторінок за їх власними правилами та індивідуально пристосовувати значущість з використанням методів ранжирування (популярних і наукових).
- YaCy забезпечує всіх користувачів проксі-функцією, яка надає доступ до колег за особливою адресою PEERNAME.yacy (тобто, ім'я цього вузла з розширенням ".yacy") або PEERHASH.yacyh (тобто геш цього вузла з розширенням ".yacyh"). www.PEERNAME.yacy може бути домашньою сторінкою користувача, під share.PEERNAME.yacy знаходиться файлообмінник, а PEERNAME.yacy це звичайна http-оболонка доступу. Інші піддомени можуть бути спеціально створені шляхом створення теки з ім'ям піддомену. Динамічний DNS не підтримується.
- Вузол доступний для YaCy користувачів, незалежно від того, чи YaCy-домен надає місце для домашньої сторінки та тек, які можуть бути зв'язані з поточною IP-адресою або адресою динамічного DNS.
- YaCy має вбудовану функцію повідомлень, за допомогою якої можна відправляти текстові повідомлення (з форматуванням вікі), і залежно від настройки приймача також відправляти файли.
- YaCy має вбудовані wiki і блог.
- Є керування закладками, які можуть бути загальнодоступними та особистими.
- Є можливість внесення окремих областей до чорних списків.
- Є OpenSearch-інтерфейс. Кожен вузол забезпечує доступність цієї адреси http://<адреса-вузла>:<порт-вузла>/opensearchdescription.xml, наприклад https://web.archive.org/web/20120602233757/http://sciencenet.fzk.de:8080/opensearchdescription.xml
Основу програми становить вебсервер, який також є кешуючим-проксі-сервером. Користувач має доступ до сторінок пошуку та керування своїм вузлом. Проксі має спільний код зі сканером, а це означає, що, якщо проксі задіяний, всі відвідані сторінки, які не є особистими, автоматично записуються в індекс. Крім того, YaCy надає власний домен у YaCy-мережі, який доступний через проксі-сервер.
Пошукові запити здійснюються через P2P-пошук та мають бути доступними негайно. Для цього YaCy використовує розподілену хеш-таблицю. Це означає, що після індексування всі знайдені URL адреси та слова відправляються до вузлів, які найбільше підходять для зберігання відповідних контрольних сум (хешів) слів, вузлів чи посилань. При пошуку все працює навпаки: для пошуку залучаються вузли, які можуть видати хеші URL адрес для слів пошукового запиту. Таким чином, для отримання гарних результатів необхідно задіяти тільки частину вузлів.
YaCy розрізняє чотири типи вузлів:
- Новенький: такі вузли не доступні, оскільки не мають зв'язку з мережею, та бачать лише себе.
- Молодший вузол знаходиться за файрволом. Інші відносять його до молодших або потенційних вузлів, вони бачать тільки те, коли він був останній раз зареєстрований, і не мають ніякого способу визначити, чи він досі в мережі.
- Старший доступний ззовні та є повноправним членом мережі YaCy.
- Головний — старший, який надає список вузлів, який використовується для початкового зв'язку з іншими вузлами.
Протокол YaCy складається з текстових сервлетів, які забезпечують вбудований вебсервер за адресами /yacy/servletname.html. Інші вузли передають дані через GET-властивості і отримують простий уривок тексту, точний формат відрізняється для сервлетів.
При початковому завантаженні вузол намагається зв'язатися з іншими вузлами YaCy-мережі. Спочатку шукаються списки вузлів. Перша адреса в superseed.txt слугує для завантаження стійких YaCy-вузлів. У seeds.txt є також посиланнями на інші вузли, так що таким чином контакт з YaCy-мережею може бути налагоджено. При наступному запуску YaCy, gebootstrapt створює перелік з відомих з попереднього разу вузлів мережі, а списки вузлів необхідні лише тоді, коли багато посилань більше не дійсні.
- Peter Schüler: Web-Erkundung per PC. In: c’t. Eigener Webindex mit YaCy Nr. 21, September 2008, ISSN 0724-8679, S. 180–185.
- M. Christen: Peer-to-Peer: Eigenes Suchportal mit Yacy einrichten in iX 02/2008, S. 102 ff.
- M. Schlenker: Gemeinsam gegen Google in OpenSource [Архівовано 10 травня 2013 у Wayback Machine.], 01/2007, November 2006, S. 94-97
- J. Bager: Europäische Gegenströmung in c't, 2006/10, 2. Mai 2006, S.172-174 (Onlinetext [Архівовано 21 грудня 2008 у Wayback Machine.])
- R. Sietmann: Wider die Monokultur. P2P-Strategien gegen die Suchmaschinen-Monopolisierung. in c't, 2005/16, 25. Juli 2005, S.52-53 (Onlinetext [Архівовано 5 грудня 2008 у Wayback Machine.])
- M. Schwarze: Jedermanns Suchmaschine in: HAZ (Artikel als PDF [Архівовано 9 травня 2013 у Wayback Machine.] 107 kB)
- Michael Christen: YaCy — Peer-to-Peer Web-Suchmaschine in Die Datenschleuder, #86, 2005, S.54-57 (gesamtes Heft als PDF [Архівовано 6 лютого 2012 у Wayback Machine.] 1,7 MB)
- Сторінка проекту [Архівовано 25 січня 2012 у Wayback Machine.]
- Wiki проекту [Архівовано 11 квітня 2012 у Wayback Machine.]
- Блог проекту [Архівовано 1 січня 2012 у Wayback Machine.]
- Статистика проекту [Архівовано 17 лютого 2012 у Wayback Machine.]
- Демонстративний пошуковий портал YaCy Web Search [Архівовано 30 січня 2012 у Wayback Machine.] — балансир для публічно доступних вузлів[7].