代码改变世界

ajax+Lucene+nutch构造垂直搜索(1)

2006-08-20 01:06  cppguy  阅读(3076)  评论(2编辑  收藏  举报

   垂直搜索是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。垂直搜索引擎和普通的网页搜索引擎的最大区别是对网页信息进行了结构化信息抽取,也就是将网页的非结构化数据抽取成特定的结构化信息数据,好比网页搜索是以网页为最小单位,基于视觉的网页块分析是以网页块为最小单位,而垂直搜索是以结构化数据为最小单位。然后将这些数据存储到数据库,进行进一步的加工处理,如:去重、分类等,最后分词、索引再以搜索的方式满足用户的需求
    垂直搜索引擎技术同信息采集技术有一些共同点,不同的是,信息采集主要是将采集的信息导入本地库,而垂直搜索引擎主要是以网页的形式展现给用户,通用搜索引擎主要是利用一个spider程序到网络上爬行,一般是某个特定的周期派出一次将网页更新,垂直搜索引擎同样应有一个spider程序,但该程序只在一些特定的网络上爬行,并不会对每一个链接都感兴趣,相对来说,垂直搜索引擎的收录范围大大缩小了,但并不意味着内容的缩小,通用搜索引擎对一些动态脚本是不敏感的,例如***asp?id=***之类的网页一般不被收录,而恰恰是这类动态网页包含了丰富的内容,垂直搜索引擎是必须收录这些动态脚本的,这就需要在技术上做一些特殊处理,另外由于目前网页中的链接形式非常多,不但有动态脚本也有flash做的链接,这些链接方式通过传统的spider程序是很难解析出来的,在垂直搜索引擎中也应该解决.

    垂直搜索的核心技术实际上就是智能spider的技术,也就是说如何将定向或者非定向的网页抓取下来进行分析后得到格式化数据的技术

   垂直搜索一般情况下爬虫分3种模式:
1.broad search的基础上对信息进行分类挑选组织。
2.定向爬虫获取信息,配上手工或者自动的模版,将信息进行格式化分析入库。
3.目标网站提供特殊的数据源的接口,利用这些数据进行再加工。
  相关资源如下:

      Lucene,最初是Doug Cutting的一个个人项目,后来进入了开源社区,并得到了广泛的发展,此人也同为Nutch的创造者.具体资源在http://lucene.apache.org/,而我们这个项目是基于.net环境的,所以我们使用了lucene的c#实现版lucene.net,http://incubator.apache.org/projects/lucene.net.html
   Nuth,一个开源的web搜索引擎,网络爬虫.详细资源http://lucene.apache.org/nutch/.网络爬虫.详细资源http://lucene.apache.org/nutch/.Nutch的爬虫抓取网页有两种方式,一种方式是Intranet Crawling,针对的是企业内部网或少量网站,使用的是crawl命令;另一种方式是Whole-web crawling,针对的是整个互联网,使用inject、generate、fetch和updatedb等更底层的命令.
   Ajax,利用其做web的无刷新送显,效果如http://www.backbase.com/demos/bbsearch/