怎样写一个搜索引擎

2012-06-16 22:55:50 +08:00
 shine_lee
看了数学之美以后想自己写一个小型的搜索引擎
用于搜索学校网站收录的文章
毫无头绪
求指点...谢谢!
5420 次点击
所在节点    程序员
10 条回复
Alcar
2012-06-16 23:00:24 +08:00
先写个爬虫抓取学校的网站
然后再对抓取的内容进行索引,建立数据库
再是写搜索页面,以及服务器端的搜索数据库的程序吧

应该是这样,我也不太了解...
virushuo
2012-06-16 23:02:12 +08:00
http://www.udacity.com/overview/Course/cs101/CourseRev/apr2012

入门级别,原理是没错,但优化还需要很多很多很多,用来搜索一点点东西和学习不错。
sorry
2012-06-16 23:04:00 +08:00
heritrix+lucene
66450146
2012-06-16 23:16:59 +08:00
数学之美的内容,看起来简单,实现起来非常复杂

比如中文分词,Google特地雇了一大堆phd研究韩梅梅(HMM)方法,效果也只能达到“还不错”而已

再说相关性排序,数学之美说的是TF*IDF,听起来确实很简单,但是最后你会发现搜索排名的相关度不是很理想,尤其是你的内容有偏向性的时候,所以Google另外雇了一帮phd来改进搜索结果

如果只是为了练手的话,做这样的东西挑战也有点太大了。。。
HowardMei
2012-06-17 09:01:14 +08:00
Programming Collective Intelligence 所有你需要的算法都在里面了,包括搜索引擎、推荐算法,只是很多基于海量数据样本,正是这本书激起我学Python的兴趣,否则就赶时髦去学 ROR 了。越用Python越觉得,它不断引诱你知其然还要知其所以然,呵呵。
luoqeng
2012-06-17 19:30:09 +08:00
clippit
2012-06-17 19:51:09 +08:00
Apache Nutch: http://nutch.apache.org/
另外LZ觉得这本书如何?我也想看看
clowwindy
2012-06-17 20:31:03 +08:00
@luoqeng 这本书 +1

不过搜索引擎是个很大的工程,一个人用几年时间,把其中一个小模块研究透,就已经很了不起了
shine_lee
2012-06-17 22:51:12 +08:00
@66450146
@clowwindy 好吧...数学之美里说的貌似很简单的样子...
@clippit 个人觉得还不错,主要是说了各种数学在搜索引擎中的应用,还有算法原理方面较多,还是比较容易理解的,值得一看!
saturn
2012-06-17 23:16:33 +08:00
不要为了算法而算法,首先要知道为什么需要这些算法?

如果你想做的搜索引擎内容是垂直的(亦即搜索范围固定),给你几个工具用来参考:

* 开源的Java爬虫:https://github.com/yasserg/crawler4j
* 开源的索引引擎:Sphinx / lucene
* mmseg 中文分词算法:http://technology.chtsai.org/mmseg/
* 你最熟悉的一款脚本语言,比如PHP。

如果你程序功底过硬、英文水平过关,有了这 4 个东西,你应该只需要2周左右即可实现一个简单的全功能站内搜索引擎了。

上面的每个领域都有大量的开发者和科学家在做研究。把上面这几个东西搞明白之后,你会发现自己的知识非常不够用、结果不甚理想。这个时候就开始着手学习Text Extraction、Machine Learning来辅助你完成提高结果精准度的东西了。这里推荐一款工具给你:Weka.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/39690

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX