1、什么是 nutch
Nutch 是一个开源的、 Java 实现的搜索引擎。它提供了我们运行自己的搜 索引擎所需的全部工具。
2、研究 nutch 的原因
(1) 透明度: nutch 是开放源代码的,因此任何人都可以查看他的排序算法是如何工作的。商业的搜索引擎排序算法都是保密的,我们无法知道为 什么搜索出来的排序结果是如何算出来的。更进一步,一些搜索引擎允 许竞价排名,比如百度,这样的索引结果并不是和站点内容相关的。因 此 nutch 对学术搜索和政府类站点的搜索来说,是个好选择,因为一 个公平的排序结果是非常重要的。
(2) 对搜索引擎的理解:我们并没有 google 的源代码,因此学习搜索引擎 Nutch 是个不错的选择。了解一个大型分布式的搜索引擎如何工作是一 件让人很受益的事情。在写 Nutch 的过程中,从学院派和工业派借鉴了 很多知识:比如, Nutch 的核心部分目前已经被重新用 Map Reduce 实 现了。 Map Reduce 是一个分布式的处理模型,最先是从 Google 实验 室提出来的。并且 Nutch 也吸引了很多研究者,他们非常乐于尝试新 的搜索算法,因为对 Nutch 来说,这是非常容易实现扩展的。
(3) 扩展性:你是不是不喜欢其他的搜索引擎展现结果的方式呢?那就用 Nutch 写你自己的搜索引擎吧。 Nutch 是非常灵活的:他可以被很好 的客户订制并集成到你的应用程序中,使用 Nutch 的插件机制, Nutch 可以作为一个搜索不同信息载体的搜索平台。当然,最简单的就是集成 Nutch 到你的站点,为你的用户提供搜索服务。
3、nutch 的目标
nutch 致力于让每个人能很容易, 同时花费很少就可以配置世界一流的 Web 搜索引擎. 为了完成这一宏伟的目标, nutch 必须能够做到:
• 每个月取几十亿网页
• 为这些网页维护一个索引
• 对索引文件进行每秒上千次的搜索
• 提供高质量的搜索结果
• 以最小的成本运作这将是一个巨大的挑战。
4、nutch VS lucene
简单的说:
Lucene 不是完整的应用程序,而是一个用于实现全文检索的软件库。
Nutch 是一个应用程序,可以以 Lucene 为基础实现搜索引擎应用。
Lucene 为 Nutch 提供了文本索引和搜索的 API。
一个常见的问题是;我应该使用 Lucene 还是 Nutch?
最简单的回答是:如果你不需要抓取数据的话,应该使用 Lucene。常见的应用场合是:你有数据源,需要为这些数据提供一个搜索页
面。在这种情况下,最好的方式是直接从数据库中取出数据并用 Lucene API 建立
索引。