• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

    賈超 衛(wèi)文學

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

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

    賈超 衛(wèi)文學

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

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

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

    thematic search engine; Heritrix; Lucene; sorting algorithm

    引 言

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

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

    1 Heritrix與Lucene介紹

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

    1.1 網(wǎng)絡爬蟲Heritrix

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

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

    圖1 Heritrix整體結構

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

    1.2 檢索工具包Lucene

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

    圖2 Lucene的各組件及工作

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

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

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

    2.1 專題搜索引擎設計和自動運行

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

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

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

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

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

    2.2 摒棄Heritrix WebUI啟動方式

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

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

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

    2.3 網(wǎng)頁過濾

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

    2.4 查詢結果排序算法設計

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

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

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

    引進評估指標算法得分算法,具體得分計算如下:

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

    2.5 搜索引擎應用

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

    圖4 搜索引擎查詢結果界面

    3 結語

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

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

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

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

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

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

    [6]白坤,耿國華.基于Lucene/Heritrix的垂直搜索引擎的研究與應用[J].計算機應用與軟件,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-),男,山東泰安人, 碩士研究生,主要研究方向為軟件工程

    猜你喜歡
    搜索引擎網(wǎng)頁文檔
    有人一聲不吭向你扔了個文檔
    基于CSS的網(wǎng)頁導航欄的設計
    電子制作(2018年10期)2018-08-04 03:24:38
    基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
    電子制作(2017年2期)2017-05-17 03:54:56
    基于RI碼計算的Word復制文檔鑒別
    網(wǎng)頁制作在英語教學中的應用
    電子測試(2015年18期)2016-01-14 01:22:58
    Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
    網(wǎng)絡搜索引擎亟待規(guī)范
    基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
    10個必知的網(wǎng)頁設計術語
    廣告主與搜索引擎的雙向博弈分析
    肃宁县| 莲花县| 凤凰县| 永胜县| 盐池县| 定边县| 武乡县| 舒城县| 巴彦县| 太仓市| 新建县| 文昌市| 武安市| 丰都县| 贡觉县| 景东| 平顶山市| 钟祥市| 万山特区| 皋兰县| 黄陵县| 济源市| 望江县| 射阳县| 调兵山市| 万荣县| 大港区| 昂仁县| 平昌县| 黄梅县| 星子县| 富锦市| 湾仔区| 黄平县| 莒南县| 介休市| 陇川县| 东宁县| 彭泽县| 根河市| 古田县|