Lucene+nutch構建垂直搜尋引擎
阿新 • • 發佈:2019-01-28
垂直搜尋是針對某一個行業的專業搜尋引擎,是搜尋引擎的細分和延伸,是對網頁庫中的某類專門的資訊進行一次整合,定向分欄位抽取出需要的資料進行處理後再以某種形式返回給使用者。垂直搜尋引擎和普通的網頁搜尋引擎的最大區別是對網頁資訊進行了結構化資訊抽取,也就是將網頁的非結構化資料抽取成特定的結構化資訊資料,好比網頁搜尋是以網頁為最小單位,基於視覺的網頁塊分析是以網頁塊為最小單位,而垂直搜尋是以結構化資料為最小單位。然後將這些資料儲存到資料庫,進行進一步的加工處理,如:去重、分類等,最後分詞、索引再以搜尋的方式滿足使用者的需求
垂直搜尋引擎技術同資訊採集技術有一些共同點,不同的是,資訊採集主要是將採集的資訊匯入本地庫,而垂直搜尋引擎主要是以網頁的形式展現給使用者,通用搜索引擎主要是利用一個spider程式到網路上爬行,一般是某個特定的週期派出一次將網頁更新,垂直搜尋引擎同樣應有一個spider程式,但該程式只在一些特定的網路上爬行,並不會對每一個連結都感興趣,相對來說,垂直搜尋引擎的收錄範圍大大縮小了,但並不意味著內容的縮小,通用搜索引擎對一些動態指令碼是不敏感的,例如***asp?id=***之類的網頁一般不被收錄,而恰恰是這類動態網頁包含了豐富的內容,垂直搜尋引擎是必須收錄這些動態指令碼的,這就需要在技術上做一些特殊處理,另外由於目前網頁中的連結形式非常多,不但有動態指令碼也有flash做的連結,這些連結方式通過傳統的spider程式是很難解析出來的,在垂直搜尋引擎中也應該解決.
垂直搜尋引擎技術同資訊採集技術有一些共同點,不同的是,資訊採集主要是將採集的資訊匯入本地庫,而垂直搜尋引擎主要是以網頁的形式展現給使用者,通用搜索引擎主要是利用一個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
如何改造成一個垂直搜尋的spider,一般將爬行全部連結的方式改為只爬行特定連結.這些特定連結可以通過正則表示式的方式來匹配,凡不符合匹配的不進行採集