|Stable release||1.70 / 4 April 2014|
|Type||Overlay network, Search engine|
YaCy (pronounced "ya see") is a free distributed search engine, built on principles of peer-to-peer (P2P) networks. Its core is a computer program written in Java distributed on several hundred computers, as of September 2006[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 P2P networks.
Compared to semi-distributed search engines, the YaCy-network has a decentralised 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 his or her computer. (Several mechanisms are provided to protect the user's privacy.)
Access to the search functions is made by a locally running web server which provides a search box to enter search terms, and returns search results in a similar format to other popular search engines.
YaCy search engine is based on four elements:
- A search robot which traverses from web page to web page and analyzes their content.
- 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 in form of word hashes.
- Search and Administration interface
- Made as a web interface provided by a local HTTP servlet with servlet engine.
- Data Storage
- Used to store the Reverse Word Index Database utilizing a Distributed Hash Table.
- As there is no central server, the results cannot be censored, and the reliability is (at least theoretically) higher, because there's no single point of failure and the search index is stored redundantly.
- Because the engine is not owned by a company, there is no centralized advertising.
- Because of the design of YaCy, it can be used to index intranets or darknets, where Internet search engines do not or can not operate, including Tor, I2P or Freenet.
- It is possible to achieve a high degree of privacy.
- On every search YaCy fetches the pages provided in search results and verifies that they contain the keywords requested by the user. This ensures that the pages that no longer contain the requested keywords are not displayed to the user, among other things.
- The YaCy protocol uses HTTP requests, which preserves transparency and discoverability, while aiding diagnosis and investigation. Performance can be increased to near that of binary-only protocols (like TCP & UDP, see Disadvantages section), with the use of compression, such as gzip.
- Built-in support for serving search results via OpenSearch
- From development and maintenance point of view the greatest disadvantage of YaCy is that it inherits all Java's disadvantages.
- There is no NAT traversal functionality built in.
- As there is no central server and the YaCy network is open to anyone, malicious peers are (theoretically) able to insert inaccurate or commercially biased search results. In theory no search result displayed to the user can be 'wrong' since all results are verified by downloading each page from the result set to see if the searched words actually exist on the page from the search result URL. However, YaCy uses a User agent string to identify itself, meaning a web server could send down different content to a YaCy crawler than to a normal visitor, but this is true for nearly any search engine.
- Result verification is done client-side on every search, which increases network traffic on the computer running YaCy and makes YaCy slower to display the search results than search engines such as Google. This behavior can be disabled, but that would make the search susceptible to spam.
- The YaCy protocol uses HTTP-Requests, which can be slower than binary protocols.
- Missing IPv6 support.
- The ranking of sites is done on the YaCy client side (users are encouraged to run their own YaCy server, as using a local server is necessary to gain many of the benefits of YaCy). The ranking algorithms, although easily customized, do not have their workload distributed and are limited to the use of the YaCy word index and whatever analysis can be done on the object being ranked. Therefore, more complex ranking algorithms such as those used by Google (which analyse rank using a variety of contextual factors developed during content crawling) are not, yet, feasible in YaCy, placing limits on most users' means to retrieve more relevant results. However, it's possible to apply crowdsourced ranking to YaCy results using software such as Seeks.
- Dooble; an open source Web Browser with an integrated YaCy Search Engine Tool Widget
- Sciencenet; a search engine for scientific knowledge, based on YaCy
- Arado.sf.net – an open source search engine & URL Database
- "YaCy takes on Google with open source search engine". The Register. 2011-11-29. Retrieved 2012-04-16.
- "YaCy: It's About Freedom, Not Beating Google". PC World. 2011-12-03. Retrieved 2012-04-16.
- "YaCy Technology Architecture". YaCy.net. Retrieved 2012-02-14.
- "Search Engine Technology". Retrieved 28 January 2014.
- "YaCy crawler cannot parse URI's with IPv6 address in it inside square brackets. -". YaCy-Bugtracker. MantisBT Team. Retrieved 7 April 2014.
|Wikimedia Commons has media related to YaCy.|