摘 要:搜索引擎是为满足人们网络信息搜索应运而生的网络工具,它是互联网信息查询的导航针,是沟通用户与网络信息的桥梁。然而,随着网上内容的爆炸式增长和内容形式花样的不断翻新,搜索引擎越来越不能满足挑剔的网民们的各种搜索需求,尽管Web搜索是漫游Internet的基本要求, 并且现有web搜索引擎的数目却在下降。 这很有可能进一步演变成为一个公司垄断了几乎所有的web搜索为其谋取商业利益。于是强有力的搜索工具成为这些网民们的渴盼。作为Apache开源子项目,Nutch 提供完整的搜索引擎框架,在对全文进行索引的时候,索引部分采用了开源工具包Lucene进行全文索引。通过对Nutch的二次开发,我们可以利用它强大的网络资源采集功能对网络资源进行采集,并加工进入本地库,最后让用户直接面对有效的信息。
本文重点讨论搜索引擎原理,基于Nutch的搜索引擎的实现架构,同时网页抓取过程做了深入的研究和分析;最后,对在早期Nutch的版本的基础上如何更好的支持中文,实现中文分词搜索给出问题的解决方案,并对基于Nutch的搜索引擎的应用进行了讨论。
关键词:搜索引擎,抓取器,Nutch,中文分词
Abstract :Search engine is the internet tool meeting demands of people while surfing on the internet and searching the information. It is a Internet Information navigation and bridge between internet user and information. However, with the sharply increase of the net content and the surprisingly change of the Synchronized forms of content, search engine can not satisfy increasingly critical user’s all kinds of search demands, although Web search is the foundation of the internet Roaming ,the existing number of search engine is down.This phenomenon can easily became one company almost monopolized all web search for its commercial gain. Therefore ,a strong and useful and effective search tool rise to the hope focus of internet user.Nutch is such search engine, when Nutch aims to text indexing, it uses the revenue Lucene toolkit for full-text indexing. Through the second Nutch development we can make use of its powerful internet resource Collection Function to collect the resource we need, then put the processed information into local database, finally, user can directly face effective information.
In this paper, we emphasize on the implementation architecture of the Nutch, Search engine principle,webpage crawling process. Excepting the in-depth research and analysis about above, we also give the solution of how to support Chinese and Chinese segmentation on the basis of earlier versions. Finally, a discussion about the application based on Nutch is given.
Key words:Search engine, crawler, Nutch, Chinese segmentation
1绪论
1.1 课题背景
互联网发展的今天,一方面离不开其开放、共享的特性带给人们的全新体验,另一方面也离不开数以亿计的为其提供各类丰富内容的网络节点,联网被普及前,人们查阅资料第一想到的便是拥有大量书籍资料的图书馆,到了今天你怎么想?或许今天的很多人都会选择一种更方便、快捷、全面、准确的方式——互联网。你可以坐在家里轻点几下鼠标就查到 想要的各类信息,这在互联网没有被普及之前,还都仅是一个梦而已,但如今这一切已成为了可能。而帮助你通过整个互联网快速查找到目标信息的就是越来越被重视的搜索引擎。络上已经有很多关于搜索引擎方面的报道。
目前,搜索引擎成为最受人们关注的焦点之一,也成为亿万富翁的制造摇篮。
越来越多的公司都希望在搜索引擎这座金矿中挖到金子,其中许多人会选择拥有自己的搜索引擎。国内著名搜索引擎公司百度总裁李彦宏说:搜索引擎不是人人都能做的领域,进入的门槛比较高。现有web搜索引擎的数目在下降. 这很有可能进一步演变成为一个公司垄断了几乎所有的web搜索为其谋取商业利益。
Nutch 正是在这种环境中诞生,它是一个刚刚诞生开放源代码(open-source)的web搜索引擎完整框架,作为apache旗下的一个开源项目已经有两年的历史。基于nutch开发者可以建立自己内部网的搜索引擎,也可以针对整个网络建立搜索引擎。相对于那些商用的搜索引擎, Nutch作为开放源代码搜索引擎将会更加透明,更值得大家信赖.。现在所有主要的搜索引擎都采用私有的排序算法, 而不会解释为什么一个网页会排在一个特定的位置,除此之外, 有的搜索引擎依照网站所付的费用, 而不是根据它们本身的价值进行排序。与它们不同, Nucth没有什么需要隐瞒, 也没有动机去扭曲搜索的结果。 Nutch将尽自己最大的努力为用户提供最好的搜索结果。Nutch 致力于让每个人能很容易, 同时花费很少就可以配置世界一流的Web搜索引擎.与现有的搜索引擎相比,nutch在索引为了完成这一宏伟的目标, 必须能够做到:每个月取几十亿网页,为这些网页维护一个索引,对索引文件进行每秒上千次的搜索,提供高质量的搜索结果,以最小的成本运作。