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

?

基于Heritrix與Lucene的地震專業(yè)搜索引擎設(shè)計(jì)

2016-11-26 04:50:59李亞龍
地震地磁觀測與研究 2016年5期
關(guān)鍵詞:搜索引擎網(wǎng)頁排序

孫 靜 李亞龍 萬 杰

(中國合肥230031安徽省地震局)

基于Heritrix與Lucene的地震專業(yè)搜索引擎設(shè)計(jì)

孫 靜 李亞龍 萬 杰

(中國合肥230031安徽省地震局)

隨著網(wǎng)絡(luò)科技的發(fā)展,用戶對搜索引擎提出更高要求,專業(yè)搜索引擎應(yīng)運(yùn)而生并不斷發(fā)展壯大。對地震專業(yè)搜索引擎進(jìn)行系統(tǒng)研究,提出一種基于網(wǎng)絡(luò)爬蟲Heritrix和開源全文信息檢索包Lucene的專業(yè)檢索解決方案,完成信息資源抓取、鏡像文件建立及索引、搜索等關(guān)鍵操作的建立。

地震;Heritrix;Lucene;索引;搜索

0 引言

當(dāng)今世界是信息的世界,網(wǎng)絡(luò)信息資源飛速膨脹,如何在浩瀚如海的信息空間里快速查找并獲取所需信息已成為信息時(shí)代的根本問題之一。網(wǎng)絡(luò)搜索引擎在網(wǎng)絡(luò)信息資源查找中起到重要作用,可以幫助人們在繁多的網(wǎng)絡(luò)信息中查找所需內(nèi)容。然而現(xiàn)有搜索引擎,如Google、百度等,均非為特定領(lǐng)域設(shè)計(jì),面向某一特定領(lǐng)域某一特定專業(yè)、某一特定用戶的專業(yè)搜索引擎,即垂直搜索引擎(又被稱為專業(yè)搜索引擎),應(yīng)運(yùn)而生。專業(yè)搜索引擎可以更好地面向特定領(lǐng)域特定專業(yè)進(jìn)行深入信息搜索,從而滿足特定用戶需求。

本文提出的地震專業(yè)搜索引擎即為一種專業(yè)搜索引擎,該引擎基于Lucene和Heritrix兩個(gè)核心技術(shù),實(shí)現(xiàn)信息資源的抓取和索引、搜索功能的建立,提供在線查詢接口和友好的用戶界面。

1 Heritrix和Lucene技術(shù)

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

Heritrix是一款基于Java語言開發(fā)的開源的爬蟲框架,被用來獲取完整的、精確的、站點(diǎn)內(nèi)容的深度復(fù)制,包括獲取圖像及其他非文本內(nèi)容、抓取并存儲相關(guān)內(nèi)容,具有良好的可擴(kuò)展性,開發(fā)者可以擴(kuò)展插件模塊,來實(shí)現(xiàn)自己的抓取邏輯(邱哲,2010)。Heritrix包含以下主要組件:①CrawlOrder,為整個(gè)抓取任務(wù)的起點(diǎn);②CrawlController,是一次抓取任務(wù)中的核心組件;③Frontier,為ToeThread提供URI工具;④ToeThread和ToePool,提供一個(gè)標(biāo)準(zhǔn)線程池,用于管理抓取線程ToeThread;⑤Heritrix提供一系列Processor,負(fù)責(zé)對URI進(jìn)行不同處理。

1.2 開源式全文檢索工具包Lucene

Lucene是一個(gè)開發(fā)源代碼的全文檢索引擎工具包,可以提供完整的查詢檢索和索引檢索引擎功能,支持英文與德文兩種語言進(jìn)行邏輯設(shè)計(jì)。Lucene是基于javayuan框架,針對完成本搜索引擎系統(tǒng)的索引和查詢功能設(shè)計(jì)的核心工具,程序設(shè)計(jì)員通過對Lucene的調(diào)用,輕松高效地完成全文索引引擎設(shè)計(jì)(邱哲,2010)。Lucene能對文檔進(jìn)行預(yù)處理、過濾、分析、索引和檢索排序,應(yīng)用程序編程接口和調(diào)用函數(shù)系統(tǒng)豐富,具有高效、簡單的特點(diǎn)。

2 地震專業(yè)搜索引擎設(shè)計(jì)

2.1 總體設(shè)計(jì)

地震專業(yè)搜索引擎是服務(wù)于地震行業(yè),是以地震為專業(yè)內(nèi)容的搜索引擎系統(tǒng)。本搜索引擎包含3大模塊:基于Heritrix技術(shù)的排序抓取設(shè)計(jì)模塊、基于Lucene技術(shù)的索引排序模塊、基于網(wǎng)頁技術(shù)的用戶界面及結(jié)果顯示模塊。地震專業(yè)搜索引擎具體流程如下:基于Heritrix技術(shù),爬行抓取相關(guān)網(wǎng)頁HTML格式和TXT格式的文本;基于Lucene技術(shù)設(shè)計(jì)索引排序模塊,對抓取的本地磁盤文本內(nèi)容進(jìn)行排序和索引;使用基于網(wǎng)頁技術(shù)的用戶界面及結(jié)果顯示模塊,對用戶的搜索要求進(jìn)行相應(yīng)接收,變成相應(yīng)搜索指令,依據(jù)指令,將搜索結(jié)果按照相關(guān)網(wǎng)頁鏈接時(shí)間進(jìn)行排序,以關(guān)鍵字提亮后顯示給用戶,用戶點(diǎn)擊相關(guān)鏈接瀏覽(圖1)。

地震專業(yè)搜索引擎分為前端程序和后端程序兩部分(圖2)。在前端流程中,用戶在搜索引擎提供的界面(用戶界面一般是一個(gè)帶有輸入框的 Web 頁面)中輸入搜索關(guān)鍵詞,應(yīng)用程序?qū)㈥P(guān)鍵詞解析成搜索引擎可以理解的形式,在索引文件上進(jìn)行搜索操作,排序后,搜索引擎將搜索結(jié)果返給用戶。在后端流程中,網(wǎng)絡(luò)爬蟲從因特網(wǎng)上獲取 Web 頁面,索引子系統(tǒng)進(jìn)行解析并存入索引文件(楊頌,2010)。

圖1 專業(yè)搜索引擎系統(tǒng)流程Fig.1 Specialty search engine system flow chart

圖2 專業(yè)搜索引擎整體架構(gòu)Fig.2 Specialty search engine architecture

2.2 實(shí)現(xiàn)基于Heritrix的抓取模塊

2.2.1 Heritrix安裝配置。本項(xiàng)目下載使用Heritrix1.14.4源代碼版本。在Eclipse中新建Java工程,將所需類庫和源代碼導(dǎo)入工程,需注意文件放置路徑。在Heritrix目錄下的conf文件中Heritrix.Properties設(shè)置兩行: Heritrix.mdline.admin=admin:admin,

“admin:admin”分別為用戶名和密碼;heritrix.cmdline.port=8081,默認(rèn)的8080被Tomcat占用,需要修改。配置后的Heritrix項(xiàng)目運(yùn)行結(jié)果見圖3。在瀏覽器中輸入http://localhost:8081,以Web方式配置Heritrix(具體配置細(xì)節(jié)可以參考相關(guān)文檔),即可進(jìn)行網(wǎng)頁抓取。

圖3 Heritrix運(yùn)行成功Fig.3 Heritrix successful operation diagram

2.2.2 網(wǎng)頁過濾。Heritrix抓取網(wǎng)站內(nèi)部URI及包括的所有文件,一般只需搜索純文本,可以通過重寫FrontierScheduler內(nèi)部的schedule達(dá)到過濾目的。實(shí)現(xiàn)代碼如下

為了提高抓取效率,可設(shè)置函數(shù)considerRobotsPreconditions(CrawlURI curi)的返回值為false,取消robots.txt的限制,抓取速度將提高至少一半 (羅剛,2009)。

2.3 設(shè)計(jì)與實(shí)現(xiàn)基于Lucene的排序和索引

抓取結(jié)束后,將搜索的結(jié)果數(shù)據(jù)進(jìn)行索引、分詞,并對外提供接口展示給用戶。

2.3.1 網(wǎng)頁解析。抓取的網(wǎng)頁源碼包含大量HTML標(biāo)簽,需經(jīng)網(wǎng)頁過濾提取有用信息。在此使用Lucene提供的HTML解析器和htmlparser,改造或提取HTML,從中獲取節(jié)點(diǎn)的各項(xiàng)屬性和信息(黃穎,2008)。

地震專業(yè)搜索引擎使用Eclipse開發(fā),新建Java工程,導(dǎo)入htmlparser.jar包和luceneHtmlParser包。新建一個(gè)類initHtmlParser,解析原始網(wǎng)頁,提取有用信息,并被其他控制類調(diào)用,部分核心代碼如下

2.3.2 索引建立。新建 “test.dw.paper.lucene.index”包,添加indextest類,用來建立索引。indextest類包含兩個(gè)私有屬性,分別是dataDir和indexDir。dataDir代表存放等待進(jìn)行索引的 HTML頁面的路徑,indexDir代表存放Lucene索引文件的路徑。類indextest提供3個(gè)方法,分別是createIndex、addDocument和ifIndexExist??梢允褂梅椒╟reateIndex創(chuàng)建索引,采用方法 addDocument向一個(gè)索引上添加文檔,即添加一個(gè)HTML頁面。addDocument調(diào)用HTMLDocParser提供的方法,對HTML文檔進(jìn)行解析,使用ifIndexExist判斷Lucene的索引是否存在。ccreateIndex是一個(gè)遞歸遍歷文件目錄來建立索引的函數(shù)。核心代碼如下

2.4 實(shí)現(xiàn)搜索功能

為了實(shí)現(xiàn)搜索功能,定義SearchManager類和SearchResultBean類。SearchManager用來實(shí)現(xiàn)搜索功能,SearchResultBean是個(gè)JavaBean,用來描述搜索結(jié)果的結(jié)構(gòu)。SearchManager類有3個(gè)私有屬性:①searchWord,代表來自客戶端的搜索詞;②indexManager,代表在索引子系統(tǒng)中定義的類IndexManager的一個(gè)實(shí)例;③analyzer,代表用來解析搜索詞的解析器。

search方法首先檢查索引文件是否存在,如果存在,則在索引上進(jìn)行檢索;如果不存在,調(diào)用類IndexManager提供的方法創(chuàng)建索引,然后進(jìn)行檢索。搜索結(jié)果返回后,提取需要的屬性并為每個(gè)搜索結(jié)果生成類SearchResultBean的一個(gè)實(shí)例,放入一個(gè)列表并返回請求管理器。搜索結(jié)果包含兩個(gè)屬性:htmlPath和htmlTitle,其中htmlPath代表HTML文件路徑,htmlTitle代表HTML文件標(biāo)題。核心代碼如下

3 用戶接口

使用search.jsp頁面實(shí)現(xiàn)用戶接口子系統(tǒng),提供用戶界面,使用戶可以向 Web 應(yīng)用程序服務(wù)器提交搜索請求,顯示搜索結(jié)果。

(1)提供一個(gè)用戶接口,向Web應(yīng)用程序服務(wù)器提交搜索請求。搜索請求發(fā)送到名為SearchController類的Servlet。Servlet的名字和具體實(shí)現(xiàn)類的對應(yīng)關(guān)系在Web.xml里指定。 即

4 搜索引擎在地震行業(yè)中的應(yīng)用

系統(tǒng)采用Java語言實(shí)現(xiàn),實(shí)驗(yàn)從網(wǎng)絡(luò)中選取100篇與地震相關(guān)的網(wǎng)頁作為種子url集,并依此選取2 000篇地震相關(guān)文件進(jìn)行測試。搜索引擎查詢結(jié)果界面見圖4。主要采集指標(biāo)為查找精度、召回率,結(jié)果見表1。由實(shí)驗(yàn)結(jié)果可知,地震專業(yè)搜索引擎在采集精度上效果較好。故將基于Heritrix和Lucence的地震專業(yè)搜索引擎應(yīng)用到地震輿情預(yù)警系統(tǒng)中是可行的。

圖4 輿情監(jiān)控系統(tǒng)Fig.4 Public opinion monitoring system

表1 結(jié)果統(tǒng)計(jì)Table 1 Result statistics

5 結(jié)束語

將Heritrix和Lucence進(jìn)行有效結(jié)合,構(gòu)建完整的搜索引擎,通過對源碼的修改和

封裝,實(shí)現(xiàn)以地震為專題搜索引擎的自動運(yùn)行,用戶只需配置相應(yīng)專題信息即可使用檢索功能,無需進(jìn)行繁瑣配置,且不必關(guān)心搜索引擎的運(yùn)行。地震專業(yè)搜索引擎的自動運(yùn)行,易于普通用戶使用,提高了易用性,擯棄Heritrix的傳統(tǒng)用法,避免了繁瑣的配置過程;進(jìn)行網(wǎng)頁過濾,避免爬取大量無用和冗余的網(wǎng)頁信息,節(jié)省磁盤空間,可在地震行業(yè)推廣使用。

黃穎,黃治平.HtmlParser提取網(wǎng)頁信息的設(shè)計(jì)與實(shí)現(xiàn)[J].江西理工大學(xué)學(xué)報(bào),2008,28(6):26-28.

羅剛.自己動手寫搜索引擎[M].北京:電子工業(yè)出版社,2009.

邱哲,符滔滔,王雪松.開發(fā)自己的搜索引擎——Lucene+Heritrix[M].北京:人民郵電出版社,2010.

楊頌,歐陽柳波.基于Heritrix的面向電子商務(wù)網(wǎng)站增量爬蟲研究[J].軟件導(dǎo)刊,2010,9(7):38-39.

Design and implementation of the search engine for earthquake based on Heritrix and Lucene

Sun Jing,Li Yalong and Wan Jie
(Earthquake Administration of Anhui Province,Hefei 230031,China)

With the development of the internet technology,it is demanding to have enhanced search engine with great precision.Enterprise search engine is then proposed and advanced for such purpose.We systematically studied the search engine for seismology and implemented an enterprise search solution based on Web-based crawler Heritrix and Lucene which is an open source full-featured text search engine.The key functions in our system include acquiring information,creating image fi les,building indices and searching.

earthquake,Heritrix,Lucene,index,search

10.3969/j.issn.1003-3246.2016.05.030

孫靜(1978—),女,安徽合肥人,工程師,2005年畢業(yè)于中國科學(xué)技術(shù)大學(xué)軟件工程專業(yè),獲碩士學(xué)位,主要從事網(wǎng)絡(luò)技術(shù)方面的研究工作

安徽省地震局青年基金課題

本文收到日期:2016-03-25

猜你喜歡
搜索引擎網(wǎng)頁排序
排序不等式
恐怖排序
節(jié)日排序
基于CSS的網(wǎng)頁導(dǎo)航欄的設(shè)計(jì)
電子制作(2018年10期)2018-08-04 03:24:38
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
電子制作(2017年2期)2017-05-17 03:54:56
網(wǎng)頁制作在英語教學(xué)中的應(yīng)用
電子測試(2015年18期)2016-01-14 01:22:58
網(wǎng)絡(luò)搜索引擎亟待規(guī)范
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
10個(gè)必知的網(wǎng)頁設(shè)計(jì)術(shù)語
承德县| 宜黄县| 大姚县| 花莲县| 金堂县| 驻马店市| 海阳市| 海晏县| 池州市| 庆阳市| 那坡县| 景泰县| 颍上县| 临朐县| 剑河县| 玛纳斯县| 亳州市| 罗田县| 海阳市| 集安市| 福建省| 新郑市| 金堂县| 永川市| 名山县| 土默特左旗| 辽宁省| 永德县| 乌拉特前旗| 宁蒗| 京山县| 循化| 新建县| 蒙城县| 西贡区| 江阴市| 汕尾市| 古浪县| 巫山县| 米脂县| 贵阳市|