国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Heritrix和Lucene的專題搜索引擎研究

2012-11-14 04:31:38賈超衛(wèi)文學(xué)
中國科技信息 2012年10期
關(guān)鍵詞:搜索引擎網(wǎng)頁文檔

賈超 衛(wèi)文學(xué)

山東科技大學(xué)信息科學(xué)與工程學(xué)院,山東 青島 266590

基于Heritrix和Lucene的專題搜索引擎研究

賈超 衛(wèi)文學(xué)

山東科技大學(xué)信息科學(xué)與工程學(xué)院,山東 青島 266590

專題搜索引擎也稱垂直搜索引擎,主要用來滿足特定領(lǐng)域的用戶需求。Heritrix是開源的網(wǎng)絡(luò)爬蟲,Heritrix的WebUI啟動方式并不易用于廣大用戶。本文改變了往常對Heritrix用法,摒棄了Heritrix的WebUI啟動方式,對Heritrix源碼進(jìn)行修改,將Lucene整合到Heritrix中,構(gòu)建成一個完整的搜索引擎,并通過監(jiān)聽器監(jiān)聽搜索引擎狀態(tài),使搜索引擎能夠進(jìn)行自動爬取和數(shù)據(jù)更新。同時,本文添加了網(wǎng)頁過濾模塊以及對查詢結(jié)果排序算法進(jìn)行了改進(jìn),提高了搜索引擎的易用性和查詢的準(zhǔn)確率。

專題搜索引擎;Heritrix;Lucene;排序算法

thematic search engine; Heritrix; Lucene; sorting algorithm

引 言

萬維網(wǎng)上信息浩瀚萬千,而且毫無秩序,所有的信息像汪洋上的一個個小島,而搜索引擎正如一副地圖可以讓用戶一目了然[1]。但在使用通用的搜索引擎時,返回的結(jié)果往往成千上萬,用戶需要花費(fèi)大量的時間甄選自己真正感興趣的信息,很難準(zhǔn)確返回用戶需求[2]。垂直搜索引擎正好為解決該問題,提出了很好的解決方案,它是一個針對某個行業(yè)的專業(yè)搜索引擎,是對網(wǎng)頁庫中某類專門信息的一次重新整合,為某一特定領(lǐng)域、某一特定人群或某一特定需求提供有一定價值的信息和服務(wù)[3]。

常見Heritrix的使用方法往往是通過WebUI方式啟動并進(jìn)行相應(yīng)的爬取配置后,才能進(jìn)行爬取。該方法并不容易被用戶接受和使用,同時會爬取大量的冗余和無用的網(wǎng)頁。本文通過將Lucene整合的Heritrix中,在網(wǎng)頁下載前,進(jìn)行網(wǎng)頁過濾,并對查詢結(jié)果排序的算法進(jìn)行改進(jìn),提高了查詢的準(zhǔn)確率,搜索引擎會根據(jù)專題的相關(guān)配置信息進(jìn)行自動的爬取和更新。

1 Heritrix與Lucene介紹

專題搜索引擎的實(shí)現(xiàn)過程,主要分為三個步驟:(1)抓取網(wǎng)頁。(2)對網(wǎng)頁進(jìn)行處理,建立索引文件庫。(3)進(jìn)行查詢。本文中使用Heritrix實(shí)現(xiàn)從萬維網(wǎng)上抓取網(wǎng)頁,Lucene負(fù)責(zé)對網(wǎng)頁進(jìn)行處理和查詢。

1.1 網(wǎng)絡(luò)爬蟲Heritrix

Heritrix是一個由Java開發(fā)的、開源的Web網(wǎng)絡(luò)爬蟲,用戶使用它從網(wǎng)絡(luò)上抓取特定的網(wǎng)頁或文檔等資源[4]。Heritrix可以通過Web UI的方式來啟動、設(shè)置爬行參數(shù)并監(jiān)控爬行,其出色之處在于它的擴(kuò)展性,開發(fā)者可以擴(kuò)展它的各個組件,來實(shí)現(xiàn)自己的抓取邏輯。雖然Heritrix功能強(qiáng)大,但其配置復(fù)雜,而且官方只在Linux系統(tǒng)上測試通過,用戶難以上手,這也是本文將要解決的技術(shù)難點(diǎn)之一。

Heritrix采用了模塊化的設(shè)計,用戶可以根據(jù)需要選擇使用的模塊。它主要由核心類(core classes)和插件模塊(pluggable modules)構(gòu)成。核心類可以配置,但不能被覆蓋,插件模塊可以由第三方模塊取代。所以就可以用實(shí)現(xiàn)了特定抓取邏輯的第三方模塊來取代默認(rèn)插件模塊,從而滿足自己特定的抓取需求。Heritrix的整體結(jié)構(gòu)如圖1所示。

圖1 Heritrix整體結(jié)構(gòu)

其中CrawlController(下載控制器)是整個下載過程的總控制者,整個抓取工作的啟動者,決定整個抓取任務(wù)的開始和結(jié)束。每個URI都有一個獨(dú)立的線程,它從邊界Frontier(控制器)獲取新的URI,然后傳遞給Processor chains(處理鏈)交由系統(tǒng)Processor(處理器)處理[5]。

1.2 檢索工具包Lucene

Lucene是一套用于全文檢索和搜尋的開放源代碼,由Apache軟件基金會支持和提供[6]。Lucene提供了一個簡單卻強(qiáng)大的應(yīng)用程式接口,能夠?qū)崿F(xiàn)全文索引和檢索,是目前最受歡迎的免費(fèi)java信息檢索程序。Lucene最初是由Doug Cutting開發(fā)的,在SourceForge的網(wǎng)站上提供下載[7]。在2001年9月作為高質(zhì)量的開源Java產(chǎn)品加入到Apache軟件基金會的 Jakarta家族中。隨著每個版本的發(fā)布,這個項目得到明顯的增強(qiáng),也吸引了更多的用戶和開發(fā)人員。Lucene的各組件及工作如圖2所示。

圖2 Lucene的各組件及工作

Document對象代表被索引文檔,IndexWriter通過方法addDocument()將文檔添加到索引中,實(shí)現(xiàn)創(chuàng)建索引的過程。Lucene的索引時應(yīng)用反向索引。當(dāng)用戶有請求時,Query代表用戶的查詢語句。IndexSearcher通過方法search()搜索Lucene Index。IndexSearcher計算term weight和score并且將結(jié)果返回給用戶。返回給用戶的文檔集合用TopDocsCollector表示。

2 整合Heritrix與Lucene的專題搜索引擎

本文設(shè)計開發(fā)的專題搜索引擎具有以下四個技術(shù)創(chuàng)新點(diǎn):專題搜索引擎自動運(yùn)行、摒棄Heritrix傳統(tǒng)的WebUI啟動方式、網(wǎng)頁過濾、查詢結(jié)果排序算法改進(jìn)。

2.1 專題搜索引擎設(shè)計和自動運(yùn)行

本文設(shè)計的專題搜索引擎包括爬取器(網(wǎng)絡(luò)爬蟲)、索引器、查詢器和控制中心四個模塊。四個模塊的運(yùn)行協(xié)作關(guān)系如圖3所示。

圖3 專題搜索引擎模塊運(yùn)行協(xié)作關(guān)系圖

爬取器主要負(fù)責(zé)網(wǎng)頁爬取,為索引器提供索引文檔;索引器負(fù)責(zé)對爬取的網(wǎng)頁建立倒排索引,供查詢器進(jìn)行搜索;查詢器負(fù)責(zé)用戶查詢;控制中心負(fù)責(zé)監(jiān)聽爬取器、索引器和查詢器的運(yùn)行狀態(tài)以及根據(jù)專題配置信息啟動爬取器或索引器,以實(shí)現(xiàn)專題搜索引擎的自動爬取和數(shù)據(jù)更新。

為了保證搜索引擎的自動運(yùn)行和各模塊間的協(xié)調(diào)工作,本文分別為爬取器、索引器和查詢器設(shè)定了兩種運(yùn)行狀態(tài),0表示空閑狀態(tài),1表示運(yùn)行狀態(tài)。

爬取器與索引器的運(yùn)行存在一定的順序,二者不能同時運(yùn)行,只有當(dāng)爬取器運(yùn)行完之后,才能運(yùn)行索引器,若網(wǎng)頁數(shù)據(jù)沒有下載更新,索引器是不能繼續(xù)運(yùn)行的。因此,需要為爬取器和索引器設(shè)定運(yùn)行狀態(tài),并在控制中心中設(shè)置監(jiān)聽器,定時監(jiān)聽二者的運(yùn)行狀態(tài),協(xié)調(diào)二者工作。另一個問題是如何控制爬取器的自動運(yùn)行,我們的解決方法是在數(shù)據(jù)庫中保存搜索引擎爬取時間間隔取值,這里爬取時間間隔取值是指從爬取器上一次爬取完到下一次開始爬取之間的時間間隔。當(dāng)監(jiān)聽器檢測到爬取器處于空閑(等待)狀態(tài)時,且爬取器等待時間超過數(shù)據(jù)庫中設(shè)置的爬取時間間隔時,控制中心會啟動爬取器進(jìn)行網(wǎng)頁爬取。

2.2 摒棄Heritrix WebUI啟動方式

Heritrix的WebUI啟動方式雖然廣泛被開發(fā)人員使用,但其配置繁瑣,不具備易用性。無法動態(tài)設(shè)置爬取網(wǎng)站和爬取深度,不能自動的持久運(yùn)行,對于普通用戶很難掌握并使用。本文摒棄Heritrix的WebUI啟動方式,通過配置CrawlController類來啟動抓取任務(wù)過。Heritrix啟動核心代碼如下:

SystemInfoDao負(fù)責(zé)讀取專題的配置信息,比如爬取深度、種子鏈接等。HeritrixCrawlInfo負(fù)責(zé)保存每一次爬取任務(wù)的專題配置信息。當(dāng)然,相關(guān)的配置信息是提前保存在數(shù)據(jù)庫中的,為不同的專題提供不同的配置信息,避免了每次都要設(shè)置配置信息。

通過控制中心的協(xié)調(diào)以及摒棄Web UI啟動方式,用戶只需要配置相關(guān)專題領(lǐng)域的信息就可以高效的檢索相關(guān)專題領(lǐng)域的信息,用戶不在需要關(guān)心搜索引擎的啟動和運(yùn)行,方便了用戶的使用。

2.3 網(wǎng)頁過濾

當(dāng)使用Heritrix爬取網(wǎng)頁時,磁盤上會存放大量的網(wǎng)頁文件,而且其中會有很多無用和冗余的網(wǎng)頁信息,占用大量的磁盤空間。通過網(wǎng)頁過濾,系統(tǒng)僅爬取與專題領(lǐng)域相關(guān)的網(wǎng)頁,可以提高網(wǎng)頁爬取的準(zhǔn)確性和節(jié)省磁盤空間,即在網(wǎng)頁下載到本地磁盤之前,對網(wǎng)頁數(shù)據(jù)進(jìn)行挖掘分析。Heritrix在下載某一網(wǎng)頁或某一文檔之前,我們先對該網(wǎng)頁或文檔對應(yīng)的文本數(shù)據(jù)進(jìn)行信息分析,判斷是否包含相關(guān)專題領(lǐng)域的關(guān)鍵詞,當(dāng)然相關(guān)專題領(lǐng)域的關(guān)鍵詞事先存儲在數(shù)據(jù)庫,由專業(yè)領(lǐng)域人員來設(shè)定。若該網(wǎng)頁或文檔包含相關(guān)專題領(lǐng)域信息,則下載該網(wǎng)頁或文檔,否則拋棄該網(wǎng)頁或文檔,繼續(xù)處理其它鏈接。

2.4 查詢結(jié)果排序算法設(shè)計

查詢結(jié)果排序算法實(shí)際是指文檔得分算法,為了提高查詢的準(zhǔn)確率,本文對文檔的得分算法進(jìn)行了改進(jìn)。通層次分析法(AHP),為相關(guān)專題領(lǐng)域關(guān)鍵詞設(shè)定權(quán)重(用weight表示),通過設(shè)定關(guān)鍵詞權(quán)重,更能體現(xiàn)專題領(lǐng)域信息的專業(yè)性。當(dāng)同一信息在多個網(wǎng)頁或網(wǎng)站被轉(zhuǎn)載或發(fā)表時,從側(cè)面反映出其存在較高的價值和實(shí)用性。因此,本文在排序算法中引入了一項評估指標(biāo)—網(wǎng)頁信息重復(fù)率(用pac表示),網(wǎng)頁信息重復(fù)率的權(quán)重通過德爾菲法(Delphi)來獲取,同樣我們引入傳播范圍這一評估指標(biāo),傳播范圍(用ptc表示)在本文中代表同一信息出現(xiàn)在多少不同的網(wǎng)站上,當(dāng)然其權(quán)重同樣是通過德爾菲法(Delphi)來獲取。

本文將文檔的最后的得分劃分為兩部分:Lucene原始文檔得分和引進(jìn)評估指標(biāo)算法得分,兩部分得分之和為文檔的最后得分。Lucene的文檔得分算法,具體公式如下:2.0[M].人民郵電出版社,2007.

tf的全稱為Term Frequency,也就是詞條頻率的一次。idf的全稱為Inversed Document Frequency,它表示反轉(zhuǎn)文檔頻率。Boost指在建立索引時,對每個Field設(shè)置的一種激勵因子[8]。

引進(jìn)評估指標(biāo)算法得分算法,具體得分計算如下:

兩部分得分之后即為文檔得分,查詢結(jié)果按照文檔得分的高低顯示,當(dāng)然文檔內(nèi)容重復(fù)率達(dá)到規(guī)定取值時,取文檔得分較高者顯示。最終通過引入新的得分算法,在一定程度上既能提高了查詢的準(zhǔn)確率又能降低了查詢結(jié)果的重復(fù)率。

2.5 搜索引擎應(yīng)用

本文設(shè)計開發(fā)的搜索引擎已被成功的應(yīng)用到一涉腐輿情預(yù)警系統(tǒng)中。搜索引擎查詢結(jié)果界面如圖4所示。

圖4 搜索引擎查詢結(jié)果界面

3 結(jié)語

本文通過將Heritrix和Lucene進(jìn)行有效的結(jié)合,構(gòu)建成一個完整的搜索引擎。并通過對源碼的修改和封裝實(shí)現(xiàn)了專題搜索引擎的自動運(yùn)行,用戶只需配置相應(yīng)的專題信息即可使用其檢索功能,無需進(jìn)行繁瑣的配置和關(guān)心搜索引擎的運(yùn)行。本文的主要創(chuàng)新點(diǎn)有專題搜索引擎的自動運(yùn)行,易于普通用戶的使用,提高了易用性;摒棄Heritrix的傳統(tǒng)用法,避免了繁瑣的配置過程;進(jìn)行網(wǎng)頁過濾,避免爬取大量無用的和冗余的網(wǎng)頁信息,節(jié)省了磁盤空間;改進(jìn)文檔得分算法,提高查詢的準(zhǔn)確率和在一定程度上實(shí)現(xiàn)了檢索去重。

[1]http://zh.wikipedia.org/wiki/%E6%90%9C%E7 %B4%A2%E5%BC%95%E6%93%8E

[2]李世明,趙恒永.專題搜索引擎研究與實(shí)現(xiàn)[J].電子科學(xué)技術(shù)評論,2005.

[3]高偉峰.基于Heritrix的主題網(wǎng)絡(luò)爬蟲設(shè)計與實(shí)現(xiàn)[J].南寧職業(yè)技術(shù)學(xué)院,2011.

[4]孟祥成.基于Lucene和Heritrix技術(shù)搜索引擎的設(shè)計與實(shí)現(xiàn)[J].中國現(xiàn)代教育裝備,2010.

[5]http://www.chineselinuxuniversity.net/ articles/40890.shtml

[6]白坤,耿國華.基于Lucene/Heritrix的垂直搜索引擎的研究與應(yīng)用[J].計算機(jī)應(yīng)用與軟件,2009.

[7]Erik Hatcher,Otis Gospodetic,Lucene In Action [M]. Manning Publications Co.2005.

[8]邱哲,符滔滔.開發(fā)自己的搜搜引擎Lucene

Research on the topical search engine based on Heritrix and Lucene

JIA Chao WEI Wen-xue
College of Information Science & Engineering , Shandong University of Science & Technology , Qingdao Shandong 266590 , China

thematic search engine, also known as vertical search engines, mainly used to meet specific user needs. Heritrix is an open source Web crawler Heritrix the WebUI start way is not easy for the majority of users. Changed the usual Heritrix usage abandon the way of the Heritrix of WebUI start Heritrix source code be modified to integrate Lucene into Heritrix build into a complete search engine, and through the listener to monitor the status of the search engine, search engines can automatic crawling and data updates. Meanwhile, the paper added Web filtering module, and query results sorting algorithm has been improved, easyto-use search engine and query accuracy.

TP393

A

10.3969/j.issn.1001-8972.2012.10.050

賈超(1989-),男,山東泰安人, 碩士研究生,主要研究方向?yàn)檐浖こ?/p>

猜你喜歡
搜索引擎網(wǎng)頁文檔
有人一聲不吭向你扔了個文檔
基于CSS的網(wǎng)頁導(dǎo)航欄的設(shè)計
電子制作(2018年10期)2018-08-04 03:24:38
基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
電子制作(2017年2期)2017-05-17 03:54:56
基于RI碼計算的Word復(fù)制文檔鑒別
網(wǎng)頁制作在英語教學(xué)中的應(yīng)用
電子測試(2015年18期)2016-01-14 01:22:58
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
網(wǎng)絡(luò)搜索引擎亟待規(guī)范
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
10個必知的網(wǎng)頁設(shè)計術(shù)語
廣告主與搜索引擎的雙向博弈分析
叶城县| 安乡县| 揭东县| 宿州市| 宁城县| 三门峡市| 鸡泽县| 绥棱县| 革吉县| 屏东市| 察隅县| 北川| 多伦县| 定州市| 秦皇岛市| 辰溪县| 桐柏县| 封开县| 梁山县| 鹿邑县| 唐河县| 绥滨县| 同仁县| 固始县| 通州市| 乐亭县| 高陵县| 富锦市| 哈巴河县| 邵东县| 新晃| 东丰县| 芦溪县| 仪陇县| 大丰市| 永城市| 翁源县| 绵竹市| 樟树市| 句容市| 乌鲁木齐市|