使用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的爬取。
換了個思路,省了不少事兒。nutch繼續研究使用中
【相關文章】