使用nutch检索的历程

最近开始做一个项目的搜索引擎,技术选型为爬虫nutch。开始以为除了cms系统发布的静态页面以外,还有数据库存储的结构化数据需要索引(其实这些用页面是用jsp展示的,在系统中已经有了)。所以用爬虫爬完网站后,就想着再把结构化的数据通lucene的api写进nutch的索引中,最后通过多次尝试发现很难实现。虽然能将lucene建立的索引追加进到nutch的索引中,可是却很难读出来(有一款luke软件可以,可是想要赶紧完成项目,这个luke的源码没有时间来读)。

lucene是一个平面化的存储,一个索引就相当于数据库的一张表。而nutch的存储结构是hdfs存储系统,hadoop的分布式系统,索引里面写入了很多hadoop的数据,而且其中10个字段title/url/segment/host/site/content/anchor/boost/digest/tstamp业也不像原生的lucene索引的存放方式。多次尝试发现用lucene基础api读取nutch的索引很难实现。

最近才发现原来nutch的搜索应用中的一个的一个配置文件regex-urlfilter.txt ,里面默认在后台只爬取静态页面。所以导致我开始的想法。

知道这个以后好办了,修改后台和前台应用的配置文件,消除对php/jsp/xxAction.do等动态url的过滤:

方法如下:修改conf下面的2个文件regex-urlfilter.txt,crawl-urlfilter.txt

# skip URLs containing certain characters as probable queries, etc.

-[?*!@=]

修改成

# accept URLs containing certain characters as probable queries, etc.

+[?=&]

从而允许动态传参数的?=&等url的爬取。

相关推荐