YaCy 一场失败的搜索引擎人民战争

📁 软文 #搜索引擎

看这篇文章的人可能99%不知道 YaCy是什么,但你肯定知道百度、谷歌、必应,使用了 YaCy一段时间后,我只能说理想是美好的,现实么。。。

YaCy也是一个搜索引擎(),但它和所有市面上其它搜索引擎都不同,它是一个 P2P搜索引擎,而且开源。YaCy的初衷就是打一场搜索引擎界的人民战争(口号是Web Search by the People, for the People),它完全去中心化,以 P2P实现了搜索服务的云计算,每个用户既是搜索服务使用者,也是搜索结果提供者。

YaCy官网只提供程序和源码下载,并没有类似百度、谷歌一样的主入口网页让用户直接使用。你想用 YaCy就必须安装电脑客户端,这个客户端将一个小型化的谷歌照搬到了你电脑上,让一个完整的搜索程序跑在你电脑上,在安装并运行了YaCy的电脑上使用任何浏览器打开 localhost:9999,就进入搜索页面(如图1).

打开localhost:9999/Status.html,就进入后台(如图2),你可以输入需要抓取网站的网址、rss地址、sitemap让你电脑使用 YaCy爬虫去抓取目标网站,结果会存储在你电脑硬盘上,供你自己使用,也可以根据你需要共享给 YaCy其它用户使用。在后台你能看到实时的爬虫情况,抓到了哪些结果,抓到哪个网站了,还有详细的图形化关系图谱。

开源对于大部分用户来说没有直接意义,但它的个人用户终端程序一直在持续开发和更新,最新版为1.82,Windows、Mac、Linux版都有,每个人都能用,每个人也都能成为巨大 P2P网络中的一个节点,在使用YaCy获得搜索结果的同时也通过庞大的P2P网络给YaCy其它用户提供搜索计算能力和搜索结果。

举个简单的例子:一个网站“xxx.yyy”没有被任何主流搜索引擎收录,或者百度因为某些原因没收录,谷歌你又用不了,但是你知道这个网站存在,这个网站的内容对你来说也有价值,那此时你可以选择安装 YaCy,在自己电脑上使用 YaCy爬虫抓取这个网站,并将爬到的搜索数据存储在你电脑上,你可以使用你电脑的 localhost:9999页面随时搜索,搜索结果就会展示这个网站内的相关内容,同时,如果你觉得这个网站内容对其它人也有用,可以将自己电脑上的 YaCy共享出去,这样其它同时在使用 YaCy搜索的用户就会得到这个网站的相关匹配搜索内容。

当然,除了个人电脑作为节点外,YaCy也可以直接安装到服务器上,使用服务器不间断的抓取网站并向P2P网络共享搜索计算力和搜索结果,甚至可以直接绑定域名开展小型化的搜索服务。

这是一个很美好的设计,但在 YaCy面世这么多年以后,还是只能用失败来评价它,原因很多:

首先,对使用个人电脑的用户来说,YaCy要在后台不停抓取目标网址内容,所以它必然时时刻刻在消耗你电脑硬件能力,虽然现在个人电脑性能都已足够强大,但YaCy造成的性能损耗在一些时候还是很明显的,比如打游戏时。除了性能损耗,YaCy还要占用一部分硬盘,因为在你电脑上存储你抓取的搜索结果数据库,这个数据库随着目标网站的数量和目标网站内容增加,如果你要抓2到3个大型站如新浪、搜狐,一段时间后可能会占用上百G硬盘。

其次,YaCy搜索结果不稳定,因为个人电脑一般不会7*24小时在线,所以当整个YaCy的P2P网络内不停有作为节点的个人电脑开机关机上线下线,那整个YaCy提供的搜索结果也是不停在变化的,当一台电脑关机后,这台电脑上的搜索数据库就不会再给整个 YaCy提供搜索结果,其它用户可能在前一秒还搜到了一个网站的相关结果,后一秒因为存储这个网站数据的电脑关机就搜索不到了。更惨的是,YaCy的中国用户极少,所以中文结果少得可怜(见图3)

如果有足够多的服务器加入 YaCy能缓解这个问题,但拥有服务器的人大部分在国外,他们对此兴趣不是很大,因为有谷歌,而国内则几乎没有什么人知道 YaCy,而且国内玩服务器的人本来也很少。同时,在服务器上跑 YaCy会造成比较大的流量,一些小流量服务器很容易超限,YaCy的后台运行消耗也会给你在这个服务器上跑的其它程序和网站带来影响。

结语:YaCy的口号虽然是 by the People, for the People,但在搜索这件事上个人用户做节点实在不是个好主意,它对个人用户的电脑带来了负担,同时搜索结果内容还不稳定。它的更大用武之地应该是一批拥有服务器的人联合起来提供 YaCy服务,将打造一个好用搜索引擎的服务器开销分散到上百甚至上万个服务器中去。当然,如果有土豪想直接砸钱用 YaCy打造出一个新中文搜索引擎品牌也是可行的,因为 YaCy开源。