使用nutch檢索的歷程
最近開(kāi)始做一個(gè)項(xiàng)目的搜索引擎,技術(shù)選型為爬蟲(chóng)nutch。開(kāi)始以為除了cms系統(tǒng)發(fā)布的靜態(tài)頁(yè)面以外,還有數(shù)據(jù)庫(kù)存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù)需要索引(其實(shí)這些用頁(yè)面是用jsp展示的,在系統(tǒng)中已經(jīng)有了)。所以用爬蟲(chóng)爬完網(wǎng)站后,就想著再把結(jié)構(gòu)化的數(shù)據(jù)通lucene的api寫(xiě)進(jìn)nutch的索引中,最后通過(guò)多次嘗試發(fā)現(xiàn)很難實(shí)現(xiàn)。雖然能將lucene建立的索引追加進(jìn)到nutch的索引中,可是卻很難讀出來(lái)(有一款luke軟件可以,可是想要趕緊完成項(xiàng)目,這個(gè)luke的源碼沒(méi)有時(shí)間來(lái)讀)。
lucene是一個(gè)平面化的存儲(chǔ),一個(gè)索引就相當(dāng)于數(shù)據(jù)庫(kù)的一張表。而nutch的存儲(chǔ)結(jié)構(gòu)是hdfs存儲(chǔ)系統(tǒng),hadoop的分布式系統(tǒng),索引里面寫(xiě)入了很多hadoop的數(shù)據(jù),而且其中10個(gè)字段title/url/segment/host/site/content/anchor/boost/digest/tstamp業(yè)也不像原生的lucene索引的存放方式。多次嘗試發(fā)現(xiàn)用lucene基礎(chǔ)api讀取nutch的索引很難實(shí)現(xiàn)。
最近才發(fā)現(xiàn)原來(lái)nutch的搜索應(yīng)用中的一個(gè)的一個(gè)配置文件regex-urlfilter.txt ,里面默認(rèn)在后臺(tái)只爬取靜態(tài)頁(yè)面。所以導(dǎo)致我開(kāi)始的想法。
知道這個(gè)以后好辦了,修改后臺(tái)和前臺(tái)應(yīng)用的配置文件,消除對(duì)php/jsp/xxAction.do等動(dòng)態(tài)url的過(guò)濾:
方法如下:修改conf下面的2個(gè)文件regex-urlfilter.txt,crawl-urlfilter.txt
將
# skip URLs containing certain characters as probable queries, etc.
-[?*!@=]
修改成
# accept URLs containing certain characters as probable queries, etc.
+[?=&]
從而允許動(dòng)態(tài)傳參數(shù)的?=&等url的爬取。
換了個(gè)思路,省了不少事兒。nutch繼續(xù)研究使用中
【相關(guān)文章】