我一直对开发网页搜索引擎感兴趣。有什么好的起点?我听说过Lucene,但我不是很熟悉Java。还有其他好的资源或开源项目吗?
我知道这是个庞大的工程,但这也是吸引我的一部分。我不想创建下一个Google,只是想创建一个可以用来搜索我可能感兴趣的子站点的东西。
我一直对开发网页搜索引擎感兴趣。有什么好的起点?我听说过Lucene,但我不是很熟悉Java。还有其他好的资源或开源项目吗?
我知道这是个庞大的工程,但这也是吸引我的一部分。我不想创建下一个Google,只是想创建一个可以用来搜索我可能感兴趣的子站点的东西。
以下是一些可能有用的链接: "敏捷网络爬虫",来自爱沙尼亚的一份论文(英文版) Sphinx 搜索引擎,一种索引和搜索 API。专为大型数据库设计,但可扩展和开放式。 "信息检索",由 Manning 等人编写的关于 IR 的教科书。它很好地概述了如何构建索引,涉及到的各种问题,以及一些关于爬取等讨论。现在可以免费在线阅读!
我也对搜索引擎很感兴趣。我推荐使用Apache Hadoop MapReduce和Apache Lucene。通过Hadoop集群实现更快的速度是最好的方法。
如果你对了解信息检索背后的理论和实现搜索引擎的一些技术细节感兴趣,我可以推荐 Ian Witten、Alistair Moffat 和 Tim C. Bell 合著的书籍 Managing Gigabytes。 (声明:Alistair Moffat 是我的大学导师。)虽然这本书现在有点过时了(第一版于1994年出版,第二版于1999年出版——现在管理几个GB有什么难的?),但其基本理论仍然是可靠的,并且它是索引和使用压缩进行索引和检索系统的绝佳介绍。
如果你对编程不是很感兴趣,但更关心结果,这里有一种稍微不同的方法:考虑使用Google Custom Search Engine API来构建它。
优点:
缺点: