YaCy

Peer-to-peer search engine
(Learn how and when to remove this message)
YaCy
Original author(s)Michael Christen
Developer(s)YaCy community
Initial release2003; 21 years ago (2003)[1]
Stable release
1.924 / 14 December 2020; 3 years ago (2020-12-14)
Repositorygithub.com/yacy/yacy_search_server
Written inJava
Operating systemCross-platform
TypeOverlay network, Search engine
LicenseGPL-2.0-or-later
Websiteyacy.net/en/

YaCy (pronounced “ya see”) is a free distributed search engine built on the principles of peer-to-peer (P2P) networks, created by Michael Christen in 2003.[2][3] The engine is written in Java and distributed on several hundred computers, as of September 2006[update][needs update], so-called YaCy-peers.

Each YaCy-peer independently crawls through the Internet, analyzes and indexes found web pages, and stores indexing results in a common database (so-called index) which is shared with other YaCy-peers using principles of peer-to-peer. This decentralized approach ensures privacy and eliminates the need for a central server.[4]

Compared to semi-distributed search engines, the YaCy network has a distributed architecture. All YaCy-peers are equal and no central server exists. It can be run either in a crawling mode or as a local proxy server, indexing web pages visited by the person running YaCy on their computer. Several mechanisms are provided to protect the user's privacy. Search functions are accessed by a locally run web server which provides a search box to enter search terms, and returns search results in a format similar to popular search engines.[5]

System components

YaCy search engine is based on four elements:[6]

Crawler
A search robot that traverses between web pages, analyzing their content.[7]
Indexer
It creates a reverse word index (RWI), i.e., each word from the RWI has its list of relevant URLs and ranking information. Words are saved as word hashes.[8]
Search and administration interface
Made as a web interface provided by a local HTTP servlet with a servlet engine.[9]
Data storage
Used to store the reverse word index database utilizing a distributed hash table.
Homepage of YaCy

Search-engine technology

YaCy network

YaCy platform architecture

Web search showing results of the different components YaCy uses

YaCy uses a combination of techniques for the networking, administration, and maintenance of indexing the search engine, including blacklisting, moderation, and communication with the community. Here is how YaCy performs these operations:

Distribution

YaCy is available in packages for Linux, Windows, and Macintosh, and also as a Docker image. YaCy can also be installed on other operating systems either by manually building it, or using a tarball.[11] YaCy requires Java 8, OpenJDK 8 is recommended.

The Debian package can be installed from a repository available at the subdomain of the project's website.[12][13] The package is not maintained in the official Debian package repository yet.[14]

See also

References

  1. ^ "Ich entwickle eine P2P-basierende Suchmaschine. Wer macht mit?". Heise Online (in German). 2003-12-15. Retrieved 2018-05-09.
  2. ^ "YaCy takes on Google with open source search engine". The Register. 2011-11-29. Retrieved 2012-04-16.
  3. ^ "YaCy: It's About Freedom, Not Beating Google". PC World. 2011-12-03. Retrieved 2012-04-16.
  4. ^ "Home - YaCy". yacy.net. Retrieved 2024-07-01.
  5. ^ "FAQ - YaCy". yacy.net. Retrieved 2024-07-04.
  6. ^ "YaCy Technology Architecture". YaCy.net. Archived from the original on 2012-02-05. Retrieved 2012-02-14.
  7. ^ GitHub: YaCy Grid Crawler, YaCy Search Engine, 2021-02-28, pp. yacy / yacy_grid_crawler, retrieved 2021-03-11
  8. ^ GitHub: YaCy Grid Parser, YaCy Search Engine, 2021-02-28, pp. The YaCy Grid is the second-generation implementation of YaCy, retrieved 2021-03-11
  9. ^ GitHub: YaCY Search, YaCy Search Engine, 2021-02-28, pp. yacy / yacy-search forked from cream/yacy-search, retrieved 2021-03-11
  10. ^ "forum.yacy.de". Retrieved 6 June 2017.
  11. ^ "Download - YaCy". yacy.net. Retrieved 2021-07-27.
  12. ^ "En:DebianInstall". YaCyWiki. Retrieved 6 October 2019.
  13. ^ "Dev:TaskSharing". YaCyWiki. Retrieved 6 October 2019.
  14. ^ "#452422 - RFP: yacy -- distributed web crawler and search engine". Debian Bug report logs. Retrieved 2 May 2020.
Wikimedia Commons has media related to YaCy.