学习啦>学习电脑>电脑知识大全>

程序员必须知道的电脑知识(3)

时间: 广达646 分享

  再讲一个搜索引擎的故事

  很久以前,我要给一个程序添加搜索功能。刚开始使用sql查询实现,发现实在太慢了。后来找了开源的Lucene项目。它使用反向索引技术,通过在文件中创建反向索引,大大提高了搜索速度。

  Google的两位创始人发现了html中link的秘密,他们发现可以通过html页面的link关系来为每一个html页面设置权重。也就是PageRank算法。于是,Google的自动搜索引擎击败了Yahoo人工分类的搜索引擎。

  OK,利用反向索引技术和PageRank,以及一个简单的html爬虫机器人,我们就可以创建一个搜索引擎了。但是,互联网很大,每天产生大量新网页,要为整个互联网建立反向索引是很困难的。

  若干年后Google又公开了三篇论文:Googlefs、Mapreduce、Bigtable。于是Lucene项目的开发者根据Google的Mapreduce论文开发了Hadoop项目。MapReduce就是使用大量计算机存储数据并计算,最后汇总结果。使用Hadoop+反向索引+PageRank,就可以创建搜索引擎了。Yahoo,Baidu等公司纷纷基于Hadoop开发了自己的搜索引擎。

  但是,其他公司的搜索引擎效果还是没法和Google相比。这一点我们程序员最清楚。像我,就总是翻蔷出去,只为了Google一下。

  Google黑板报上发表了吴军博士的一些文章,其中介绍了很多机器学习方面的知识。从文中可以知道,Google其实使用机器学习来分析搜集到的页面。Google明显不会把这个公式公开出来。即使有一天Google真的公开了这个公式,那么可以想见Google肯定又研发出了更加犀利的秘籍,山寨货的搜索引擎效果还是比不上Google的。

  山寨是通向创新的必由之路。在成为领域的领头羊和领导者之前,必然要经过学习,模仿的阶段。但要成为行业的老大,成为Champion,必须勇于弯道超车,勇敢地走上创新之路,成为真正的科学家,真正的大牛!

  总结

  编程能力可分为两个维度:一个是编程技能水平,另一个是领域知识水平。

  有些程序员可能把精力都花在提升编程技能上了,领域知识知之甚少,这其实在日常工作中也是极其有害的。有些需求可能早已经有了现成、开源免费的解决方案,或者只需要组合几个现有软件就可以快速搞定,而他们却不得不自己花大量时间去开发。另外,缺少领域知识,在程序出现非预期状况时,很难快速定位到问题的根源,很难解决bug。

程序员必须知道的电脑知识(3)

再讲一个搜索引擎的 故事 : 很久以前,我要给一个程序添加搜索功能。刚开始使用sql查询实现,发现实在太慢了。后来找了开源的Lucene项目。它使用反向
推荐度:
点击下载文档文档为doc格式

精选文章

  • 电脑CPU的相关知识
    电脑CPU的相关知识

    CPU你了解吗?你知道有关的CPU知识吗?CPU是电脑性能最重要配件之一,因此,了解一定的CPU知识是非常必要的,下面学习啦小编就为大家一介绍一下关于CPU的

  • 不能访问google怎么办
    不能访问google怎么办

    我们知道已经很久不能打开谷歌主页了,google进不去怎么办?有什么方法可以强制进入呢?下面学习啦小编就为大家介绍谷歌不能访问的最新最有效的解决办

  • 360云盘怎么找资源
    360云盘怎么找资源

    360云盘中集中了大量资源,但是很多用户却不知道如何搜索这些精彩资源。360云盘资源搜索方法一般分为两种,一种是直接在网页上搜索,还有就是通过群

  • 360浏览器如何清理缓存
    360浏览器如何清理缓存

    我们都知道,浏览器用着用着上面存在的垃圾就会越来越多,然而清理缓存也就变得非常重要了,我们大家都知道缓存如果不清理的话有时候会导致一些网

332885