肖 萍申亞鵬
(1 中國刑警學(xué)院 遼寧 沈陽 110035;2 大連市公安局西崗分局 遼寧 大連 116011)
Nutch搜索引擎的公安應(yīng)用研究
肖萍1申亞鵬2
(1中國刑警學(xué)院遼寧沈陽110035;2大連市公安局西崗分局遼寧大連116011)
網(wǎng)絡(luò)“爬蟲”作為網(wǎng)絡(luò)信息搜索的工具,在網(wǎng)絡(luò)輿情管控、搜查中起著至關(guān)重要的作用。隨著互聯(lián)網(wǎng)的廣泛普及,網(wǎng)絡(luò)中不安全因素、不和諧因素日益增多,使用百度等商業(yè)搜索引擎已經(jīng)不能滿足日益增長的公安輿情信息監(jiān)控工作需求。在介紹搜索引擎工作原理的基礎(chǔ)上,詳細分析了Nutch的工作機制,并與商業(yè)搜索引擎進行了比對分析,實驗結(jié)果表明了商業(yè)搜索引擎在公安應(yīng)用中的局限性,在特定的公安應(yīng)用背景下,在搜索精度、結(jié)果排序方面,Nutch要優(yōu)于商業(yè)搜索引擎。
搜索引擎Nutch網(wǎng)絡(luò)輿情信息搜索
Nutch是Apache公司推出的一款用JAVA語言編寫的支持分布式的開源網(wǎng)絡(luò)爬蟲軟件,它提供了用戶構(gòu)建網(wǎng)絡(luò)搜索引擎的全部工具。Nutch性能卓越,構(gòu)建簡易,功能強大。當(dāng)下,海量的、復(fù)雜的輿情信息充斥在網(wǎng)絡(luò)間,如何快速、精確地找到網(wǎng)絡(luò)輿情信息是對公安工作的重大考驗。基于Nutch網(wǎng)絡(luò)爬蟲可針對輿情信息頻發(fā)的網(wǎng)站進行重點布控,精確查找。本文研究了Nutch網(wǎng)絡(luò)爬蟲的工作機制,通過實驗比對Nutch與商業(yè)搜索引擎的性能,指出了Nutch在公安工作中的應(yīng)用優(yōu)越性。
搜索引擎也稱為“網(wǎng)絡(luò)爬蟲”,其核心任務(wù)是抓取網(wǎng)頁,該過程復(fù)雜、多變。爬蟲抓取過程總的來說,是依照“抓取——生產(chǎn)——更新”這一模式進行的。具體過程是:添加初始URL,爬蟲程序訪問并解析初始網(wǎng)頁內(nèi)容,同時更新Visited表;分離初始網(wǎng)頁鏈接,保存初始網(wǎng)頁內(nèi)容,更新爬蟲隊列(初始URL不比對Visited表);繼續(xù)訪問爬蟲隊列中的URL,尋址、解析網(wǎng)頁,更新Visited表;分離網(wǎng)站鏈接,比對Visited表。若網(wǎng)站鏈接已被訪問,則過濾刪除。否則,更新至爬蟲隊列中,進行下一循環(huán)。網(wǎng)絡(luò)爬蟲的抓取原理如圖1所示。
圖1 網(wǎng)絡(luò)爬蟲抓取原理
網(wǎng)絡(luò)爬蟲原理由URL尋址,遍歷互聯(lián)網(wǎng),爬蟲隊列,Visited表和網(wǎng)頁更新策略五部分核心內(nèi)容組成。
1.1URL尋址
URL(Uniform Resource Locator)是用于標識網(wǎng)絡(luò)資源位置的標志。它由服務(wù)方式、主機地址和文件存儲位置三部分組成。網(wǎng)絡(luò)爬蟲通過人工方式添加初始URL。而對初始URL的尋址則類似于瀏覽器訪問網(wǎng)站,通過DNS服務(wù)器獲取被訪問主機IP地址以便進行下一步抓取。
1.2遍歷互聯(lián)網(wǎng)
如果把目標網(wǎng)站比作一個圖,那么每一個頁面即為圖的節(jié)點,頁面間的鏈接關(guān)系則為圖的有向邊。爬蟲注入初始URL后,選擇對網(wǎng)站的遍歷方式至關(guān)重要,因為這直接影響到爬蟲工作效率。爬蟲通用網(wǎng)站遍歷方式為寬度優(yōu)先遍歷,也叫層級遍歷方式。這種遍歷方式通過對網(wǎng)站的URL分層,按層順序遍歷。寬度優(yōu)先遍歷的優(yōu)勢在于其節(jié)省系統(tǒng)資源,易于封閉目標網(wǎng)站,形成重點布控區(qū)。
1.3爬蟲隊列
隨著抓取的進行,成千上萬的URL被解析出來。在爬蟲程序中,通常使用隊列數(shù)據(jù)結(jié)構(gòu)來管理未被訪問的URL。但受計算機內(nèi)存容量的限制,直接以隊列方式存儲海量的URL不現(xiàn)實。通用方法是引入HASH算法。對URL進行md5計算,存儲其散列值,降低對計算機內(nèi)存的要求。在實際應(yīng)用中,爬蟲隊列通常會構(gòu)建一個優(yōu)化機制,來微調(diào)爬蟲隊列中URL的排序,分離訪問流量,避免爬蟲程序?qū)δ骋环?wù)器造成過大訪問壓力。
1.4Visited表
Visited表用來存儲已被訪問的URL。爬蟲程序在分離出網(wǎng)站鏈接之后,與Visited表比對,保存未被訪問的URL,優(yōu)化爬蟲隊列。構(gòu)建Visited表的通用技術(shù)是BLOOM過濾器。BLOOM過濾器的工作原理如圖2所示。
圖2 BLOOM過濾器的工作原理
首先劃分出存儲塊,塊大小=16*N(N為URL個數(shù))位。然后將塊中的每個二進制位設(shè)置為0。對每一個URL通過隨機數(shù)產(chǎn)生器1生成8位的指紋信息,以此來標識URL。然后再通過一個隨機數(shù)產(chǎn)生器2將這8位指紋信息映射到存儲塊中,將映射位置的二進制位修改為1。當(dāng)需要對URL進行比對時,只需查看這一URL對應(yīng)的8位存儲位置是否全部為1。若全為1,就表明該URL已被訪問;否則,未被訪問。BLOOM過濾器的這種工作原理保證其不會漏掉任何一個已訪問的URL,但有一定概率誤識未被訪問的URL。因為有可能某一URL的地址對應(yīng)的8位二進制恰好被設(shè)置為1。通用的解決方法是建立一張白名單,以此來標識被誤識的URL。
1.5網(wǎng)頁更新策略
互聯(lián)網(wǎng)上的網(wǎng)頁信息并非是一成不變的,而是隨著用戶的需求時刻更新。對于網(wǎng)絡(luò)爬蟲來說,不僅僅要抓取網(wǎng)頁,而且也要隨著互聯(lián)網(wǎng)的更新而更新本地網(wǎng)頁。通用的網(wǎng)頁更新策略有:歷史參考策略、用戶體驗策略和聚類抽樣策略。
歷史參考策略是建立在以往更新經(jīng)驗之上的一種更新策略。基本工作思路是:過去更新頻繁的網(wǎng)頁,未來也將頻繁更新。該策略利用泊松過程來對網(wǎng)頁的變化進行建模,根據(jù)網(wǎng)頁過去的更新情況,來推測其未來的更新情況。
用戶體驗策略是建立在用戶最為關(guān)心的特定網(wǎng)頁上的更新策略?;竟ぷ魉悸肥牵簝?yōu)先更新搜索結(jié)果排序靠前的網(wǎng)頁。該策略根據(jù)過去每次內(nèi)容變化對搜索質(zhì)量的影響,通過建立數(shù)學(xué)模型,計算影響值。值高的網(wǎng)頁,優(yōu)先進行調(diào)度抓取。
聚類抽象策略認為:網(wǎng)頁有一些屬性,根據(jù)這些屬性可以預(yù)測其更新周期,具有相似屬性的網(wǎng)頁,其更新周期也類似。該策略的優(yōu)勢在于不用依賴對網(wǎng)頁的歷史更新信息,減少系統(tǒng)負擔(dān)。
隨著互聯(lián)網(wǎng)信息量的激增,如何準確快速地搜索出網(wǎng)上熱點輿情信息成為公安網(wǎng)絡(luò)信息監(jiān)控部門的迫切需求。由于百度等商業(yè)搜索引擎存在著付費和功能限制的弊端,不能很好準確地提供搜索結(jié)果,因此在實際公安工作中可以研究應(yīng)用開源搜索引擎來定制個性化的公安搜索工具。目前主流的開源搜索引擎有以下幾種。
2.1Sphider
Sphider是一個輕量級,采用PHP開發(fā)的web spider和搜索引擎,使用mysql來存儲數(shù)據(jù)。Sphider非常小,易于安裝和修改,已經(jīng)有數(shù)千網(wǎng)站在使用它,它支持所有的標準搜索選項,還包括大量的如Word自動完成、拼寫建議等選項,使系統(tǒng)易于管理,Sphider支持中文搜索,但對中文分詞的效果不是很好。
2.2PhpDig
PhpDig是國外非常流行的垂直搜索引擎產(chǎn)品,采用PHP語言編寫,使用Mysql來存儲數(shù)據(jù)。利用了PHP程序運行的高效性,極大地提高了搜索反應(yīng)速度,它可以像Google或者Baidu以及其他搜索引擎一樣搜索互聯(lián)網(wǎng),搜索內(nèi)容除了普通的網(wǎng)頁外還包括.txt,.doc,.xls,.pdf等類型的文件,具有強大的內(nèi)容搜索和文件解析功能,適用于專業(yè)化更強、層次更深的個性化搜索引擎,但是目前所有版本的PhpDig均不支持中文檢索。
2.3Lucene
Lucene是Apache軟件基金會Jakarta項目組的一個子項目,是一個開放源代碼的全文檢索引擎工具包,即它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎。Lucene的目的是為軟件開發(fā)人員提供一個簡單易用的工具包,以方便地在目標系統(tǒng)中實現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎。其運算速度較快,在現(xiàn)在流行的硬件平臺上每個小時可處理超過150GB的數(shù)據(jù),并且內(nèi)存占用小,只需1MB的堆內(nèi)存。由于Lucene是由JAVA語言實現(xiàn)的,因此具有良好的兼容性。
2.4Nutch
Nutch是Apache基金會的一個開源項目,它原本是開源文件索引框架Lucene項目的一個子項目,后來漸漸發(fā)展為一個獨立的開源項目。它基于Lucene框架,由JAVA語言實現(xiàn),提供了搜索引擎所需的全部工具,包括全文搜索和Web爬蟲。它具有以下主要特點:(1) 使用Plugin機制來提高可擴展性;(2)通過多協(xié)議和多線程分布式抓取,提供抓取效率;(3)具備可擴展的數(shù)據(jù)處理模型,全文索引器和搜索引擎;(4)支持分布式查詢,具有強大的API接口和集成配置。
2.5Heritrix
Heritrix作為JAVA開源項目,是SourceForge上的開源產(chǎn)品,它提供了豐富的抓取設(shè)置選項,主要被用來獲取完整的、精確的站點內(nèi)容深度復(fù)制,包括獲取圖像以及其他非文本內(nèi)容。Heritrix的體系結(jié)構(gòu)是采用了多線程和鏈接隊列的形式組織。整個系統(tǒng)的工作部分可以分成對配置文件管理部分、下載任務(wù)管理部分、下載控制部分和下載工作單元。附帶的工作隊列、緩沖區(qū)等的引入則為網(wǎng)絡(luò)蜘蛛提供了良好的性能。Heritrix主要具有以下特點:(1)專注的網(wǎng)絡(luò)信息下載功能;(2)適用于各種類型網(wǎng)頁信息并嚴格保持網(wǎng)頁原貌;(3)在保留歷史的下載網(wǎng)頁庫內(nèi)容基礎(chǔ)上不斷地添加新的下載內(nèi)容;(4)以任務(wù)形式管理并提供命令行和友好的Web控制界面。
對目前主流的幾款開源搜索引擎進行了比較分析發(fā)現(xiàn),Sphider及PhpDig搜索引擎均是使用mysql數(shù)據(jù)庫來存儲數(shù)據(jù),對數(shù)據(jù)的存儲能力有限,而且不能很好地支持中文檢索,另外考慮到Lucene不是一個完整的全文檢索引擎,僅僅是一個工具包,而且相對于Heritrix來說,Nutch具有集群擴展能力,并具備多種功能,包括內(nèi)容索引功能、搜索功能、內(nèi)容解析、鏈接解析等,因此本文選擇Nutch作為應(yīng)用研究對象,其運行原理如圖3所示。
圖3 Nutch網(wǎng)絡(luò)爬蟲運行原理
注入初始url,啟動爬蟲程序;抓取指定網(wǎng)頁,解析網(wǎng)頁內(nèi)容,更新Nutch文件;待抓取全部完畢后,為抓取內(nèi)容建立索引。用戶進入Nutch服務(wù)界面,鍵入關(guān)鍵字,檢索索引文件,返回結(jié)果。
由于Nutch網(wǎng)絡(luò)爬蟲提供給用戶構(gòu)建搜索引擎的全部工具,所以其不僅僅包含網(wǎng)頁抓取功能,還包含信息索引功能和關(guān)鍵字檢索功能。
Nutch網(wǎng)絡(luò)爬蟲的存儲文件共有五個,分別是Crawldb,Linkdb,Indexes,Index和Segments。
(1)Crawldb文件夾用來存儲爬蟲爬取的url。
(2)Linkdb文件夾用來存儲網(wǎng)頁間的鏈接信息。
(3)Segments文件夾是Nutch的核心文件,其中有若干個以時間命名的文件夾,每個文件夾是爬蟲抓取的一次循環(huán)。用于存儲爬蟲抓取來的網(wǎng)頁內(nèi)容、預(yù)抓取URL等信息。每個段都有一個完整的子索引。
(4)Index文件夾用來存儲Nutch的索引文件。該文件不是直接通過網(wǎng)頁內(nèi)容建立索引,而是合并眾多子索引文件來實現(xiàn)。
(5)Indexes文件夾用于存儲子索引。
Nutch網(wǎng)絡(luò)爬蟲工作機制分為三部分,分別是抓取部分、索引部分及檢索部分。
3.1抓取部分
Nutch網(wǎng)絡(luò)爬蟲在抓取部分的主要任務(wù)是獲取網(wǎng)頁,其依照“抓取——生產(chǎn)——更新”這一循環(huán)進行的。
在爬蟲抓取的過程中,Nutch生成Crawldb、Linkdb和Segments文件夾。在Segments文件夾中,共存儲六類文件,Crawl_generate存儲待抓取的URL;Crawl_fetch存儲每個下載URL的狀態(tài);Content存儲抓取網(wǎng)頁的內(nèi)容;Parse_text存儲抓取URL的文本信息;Parse data存儲每個 URL的外連接;Crawl parse存儲用來更新Crawldb的URL集。
3.2索引部分
Nutch網(wǎng)絡(luò)爬蟲的抓取部分與檢索部分通過索引部分連接。因此,索引部分是Nutch網(wǎng)絡(luò)爬蟲的關(guān)鍵技術(shù)。
在Nutch的工作流程中,索引階段負責(zé)對網(wǎng)頁重要度評測、抓取網(wǎng)頁分析和構(gòu)建逆向索引表。
3.2.1PageRank算法
PageRank算法是由Google的創(chuàng)始人Larry Page和Sergey Brin于1998年提出的一種網(wǎng)頁重要度排序算法。該算法的基本思路是“被大量網(wǎng)頁所鏈接的網(wǎng)頁必然是優(yōu)質(zhì)網(wǎng)頁”。PageRank值表明用戶訪問某一網(wǎng)站的概率。這就需要基于用戶隨機從互聯(lián)網(wǎng)上任意一個網(wǎng)頁開始訪問互聯(lián)網(wǎng)這樣一個前提。
Nutch自身并沒有實現(xiàn)PageRank算法,而是通過構(gòu)建Hadoop集群來實現(xiàn)。大量實驗證明,Nutch實現(xiàn)PageRank算法,可提高系統(tǒng)的檢索效率,更好地為用戶提供檢索服務(wù)。
計算網(wǎng)頁PageRank值的公式定義為
其中,P(A)表示網(wǎng)頁A的PageRank值;P(Ti)為鏈接指向網(wǎng)頁A的網(wǎng)頁Ti的PageRank值;C(Ti)為網(wǎng)頁Ti的外連接總數(shù);d為阻尼系數(shù),Google推薦d值為0.85。
Google的研究表明,進行大約100次的迭代運算能估計出整個互聯(lián)網(wǎng)中任意一個網(wǎng)頁的PageRank值。
網(wǎng)頁PageRank值可作為一個獨立的索引項添加到倒排索引文件中,優(yōu)化Nutch檢索結(jié)果排序。
3.2.2Luence工具包
Nutch檢索階段構(gòu)建索引表,主要依賴Luence完成。Luence構(gòu)建索引的對象是文本文件。這就要求必須對Nutch抓取到的網(wǎng)頁進行預(yù)處理,把網(wǎng)頁內(nèi)容轉(zhuǎn)換為文本格式。
Luence的最終目的是構(gòu)建索引表,為用戶提供查詢服務(wù)。索引表是由文檔(Document),域(Field)和項(Term)組成。索引表存儲結(jié)構(gòu)類似關(guān)系數(shù)據(jù)庫,項是組成索引表的最小單位,若干項組成一組
其中,P(X,Y)表示字X與字Y相鄰的概率。P(X)標識字X出現(xiàn)的頻率;P(Y)標識字Y出現(xiàn)的頻率。當(dāng)M(X,Y)的值高于某一閥值時,字X與Y被定義為一個詞。
實際應(yīng)用中,是把此兩種分詞法結(jié)合起來。用字符串分詞法劃分簡單,常用詞匯,同時結(jié)合統(tǒng)計分析法提取新詞匯。這樣既繼承了字符串分詞法效率高的特點,又結(jié)合了統(tǒng)計分詞法靈活的特點,明顯提高分詞器的工作效率。
(3)逆向索引。逆向索引技術(shù),又稱倒排索引技術(shù)。是當(dāng)前搜索引擎應(yīng)用最普遍的技術(shù)之一??梢哉f,正是它的出現(xiàn),搜索引擎才得以發(fā)展到如今的規(guī)模。逆向索引技術(shù)原理如圖4所示。
.fnm文件、.tis文件、.frq文件及.prx文件是構(gòu)建逆向索引表的關(guān)鍵文件,存儲在index文件夾中。其域,若干組域組成一個文檔。
Luence構(gòu)建索引的過程總共分為三步:第一,網(wǎng)頁內(nèi)容分析;第二,中文分詞;第三,構(gòu)建逆向索引表。
(1)網(wǎng)頁內(nèi)容分析。網(wǎng)頁內(nèi)容分析是將Nutch抓取來的網(wǎng)頁去除廣告信息等無用內(nèi)容,分析網(wǎng)頁結(jié)構(gòu),將網(wǎng)頁內(nèi)容轉(zhuǎn)換為文本文件,為Luence提供索引對象。
通用網(wǎng)頁分析方法有簡單語言標記法,正則式信息抽取法和DOM內(nèi)容抽取法。其中簡單言語標記法,主要是根據(jù)HTML語言的特點,通過簡單程序的遍歷,刪除所有被標記出來的信息;正則式信息抽取法,通過事先定義好的規(guī)則和模塊快速提取網(wǎng)頁中符合要求的信息。這種方式效率高,但抽取的精度低,對于一些特殊網(wǎng)頁效果不好;DOM樹內(nèi)容抽取法是把原始網(wǎng)頁內(nèi)容轉(zhuǎn)換成樹形結(jié)構(gòu)儲存,這樣就可以靈活獲取網(wǎng)頁任何內(nèi)容。
(2)中文分詞。中文分詞是將已經(jīng)文本化的網(wǎng)頁文件以項為單位劃分,為下一步的建立索引表提供語素。中文分詞過程包括整句劃分切割,詞提取,標點符號去除,連接詞語去除等
目前通用自動分詞方法有兩種:基于字符串的分詞法和基于統(tǒng)計的分詞法。
基于字符串的分詞法,它是按照一定的策略,將漢字字符串與一個“詞典”進行比對,提取信息。該方法分詞效率高,但分詞過程機械,死板。
基于統(tǒng)計的分析法,是根據(jù)統(tǒng)計學(xué)原理,將出現(xiàn)頻率高的相鄰字視為一個詞。其計算公式為中.fnm文件維護索引表的域名(Field name)信息。Luence為域名信息提供兩種選用功能:Indexed和Stored。Indexed功能標注該域名信息是否被索引。Stored功能標注每個field索引的內(nèi)容是否被存儲在索引文件中,通常大量索引文件存儲在Segments文件夾中;.tis文件維護一張域(Field)信息表。該表存儲所有域名稱,值以及出現(xiàn)該值的文檔數(shù)量(Doc frequency);.frq文件列出了Luence文檔中出現(xiàn)任意項的次數(shù);.prx文件展現(xiàn)了每一項在文檔中的具體位置,便于精確查找。
圖4 逆向索引表
逆向索引技術(shù)對文檔中的每一項(Term)建立索引庫,詳細標明項在文件中出現(xiàn)次數(shù)以及位置。當(dāng)用戶鍵入關(guān)鍵字進行搜索時,Nutch可根據(jù)事先建立的索引表,迅速找到關(guān)鍵字的位置,提高Nutch的檢索效率。
3.3檢索部分
檢索部分主要是為用戶提供查詢服務(wù)。Nutch根據(jù)建立的索引表來完成此功能。這一部分是由Luence完成。
設(shè)D={t1,t2,…,tn} 為系統(tǒng)記錄的項,集合P={p1,p2,…,pn}為系統(tǒng)當(dāng)前網(wǎng)頁集合。系統(tǒng)的索引表示為集合R={<t,p>|r(t,p)>0,(t,p)∈D×P}。其中,r(t, p)是項與網(wǎng)頁的相關(guān)度函數(shù),若r>0,表示項與網(wǎng)頁相關(guān);若r=0,表示項與網(wǎng)頁無關(guān)。搜索引擎S={<t, p,r>|r(t,p,r)>0,(t,p,r)∈D×P×R}。檢索關(guān)鍵字T函數(shù)φ(T,S)={p|(t,p)∈R,p∈P}。由上可知,檢索部分是將關(guān)鍵字T與索引表通過r(t,p)函數(shù)相關(guān)聯(lián),最后返回網(wǎng)頁p。
Lunece對檢索部分的優(yōu)化在于初次索引時,并不是返回所有符合函數(shù)r(t,p)的p值,而是將r值最高的頭100項返回。對于一般的模糊檢索,頭100天記錄已經(jīng)可以滿足90%以上的檢索需求。
目前公安機關(guān)網(wǎng)監(jiān)部門對網(wǎng)絡(luò)監(jiān)管手段還比較單一,大多是依賴商業(yè)搜索引擎來實施信息搜索和查詢。由于商業(yè)搜索引擎是根據(jù)用戶繳費情況來返回搜索結(jié)果,摻雜了各種推廣鏈接,制約了公安輿情監(jiān)控工作的發(fā)展。因此在公安機關(guān)網(wǎng)監(jiān)部門普及應(yīng)用個性化搜索引擎是勢在必行的,尤其是在公安隊伍信息化大發(fā)展的今天。本小節(jié)通過實驗來驗證應(yīng)用Nutch搜索引擎在公安工作中的優(yōu)越性。
本實驗應(yīng)用對比:Nutch爬蟲和百度搜索引擎。應(yīng)用目標:通過百度搜索引擎和Nutch網(wǎng)絡(luò)爬蟲找到詐騙信息。Nutch網(wǎng)絡(luò)爬蟲配置所需軟件如表1所示。
表1 Nutch配置所需軟件
4.1Nutch搜索引擎測試
本實驗將Nutch的抓取線程設(shè)為5,抓取深度為4,開始對目標網(wǎng)站進行網(wǎng)頁抓取。打開Nutch用戶界面,輸入關(guān)鍵字“遼寧家園論壇和風(fēng)瑜”,“遼寧家園論壇二手車和風(fēng)瑜”。搜索部分結(jié)果如圖5和圖6所示
圖5 Nutch網(wǎng)絡(luò)爬蟲搜索結(jié)果(一)
圖6 Nutch網(wǎng)絡(luò)爬蟲搜索結(jié)果(二)
實驗中Nutch搜索結(jié)果共18條記錄(每組搜索結(jié)果各9條)。這18條結(jié)果實則是2條URL的重復(fù)出現(xiàn),分別是 http://lnjylt.com/forum.php? mod=forumdisplay&fid=91及http://lnjylt.com/forum.php? mod=forumdisplay&fid=268。這兩條URL分別是遼寧家園論壇中“汽車論壇”和“二手交易”頻道。在其中可直接找到目標信息。
在Nutch搜索結(jié)果中,當(dāng)中出現(xiàn)“二手車”字樣時,“二手交易”頻道排在首位;否則,“汽車論壇”頻道排在首位。因此Nutch的排序結(jié)果更能滿足用戶需求。
4.2百度搜索引擎測試
打開百度搜索引擎,輸入“遼寧家園論壇和風(fēng)瑜site:www.lnjylt.com”及“遼寧家園論壇二手車和風(fēng)瑜site:www.lnjylt.com”進行搜索,其中第一組搜索結(jié)果4條,第二組搜索結(jié)果0條。逐個打開第一組搜索結(jié)果,都不能直接找到目標信息,搜索精度為0。
若不指定目標搜索網(wǎng)站,僅使用“遼寧家園論壇和風(fēng)瑜”及“遼寧家園論壇二手車和風(fēng)瑜”進行搜索,則搜索結(jié)果多達數(shù)百萬條,在搜索結(jié)果中,對于用戶來說很難快速準確找到目標網(wǎng)頁。
從搜索結(jié)果看,百度搜索引擎總是能定位到信息的大概位置,但是不精確到具體的位置。尤其是在論壇中,大量的帖子、留言充斥著整個網(wǎng)站,信息量如此之大,僅僅是找到信息的大概位置而不是精確位置是遠遠不夠的。同時,在百度搜索結(jié)果中,往往是“百度推廣”信息被排在前邊,而用戶真正需要的結(jié)果卻被排到后邊,進一步地暴露了商業(yè)搜索引擎的應(yīng)用局限性。
4.3Nutch搜索引擎在公安工作中的優(yōu)勢
在搜索結(jié)果、搜索精度、結(jié)果排序方面將Nutch與百度的搜索能力比對,結(jié)果如表2所示。
從實驗對比結(jié)果中可看出在搜索精度、結(jié)果排序方面Nutch要優(yōu)于百度等商業(yè)搜索引擎,商業(yè)搜索引擎由于其技術(shù)內(nèi)幕隱秘、非公開,并且搜索結(jié)果也是具有商業(yè)性質(zhì)的,因此難以滿足公安工作需求。在特定的公安應(yīng)用背景下,相對于百度等商業(yè)搜索引擎來說,Nutch能夠更高效準確地完成搜索任務(wù)。
表2 實驗比對結(jié)果
本文在分析Nutch工作機制且在實驗驗證的前提下,總結(jié)出Nutch較之百度等商業(yè)搜索引擎的優(yōu)勢,但通過實驗也看出Nutch的每組關(guān)鍵字搜索結(jié)果為9條,實際都指向2條鏈接,重復(fù)度較高,未來可以對Nutch的檢索模塊進行優(yōu)化,減少搜索結(jié)果的重復(fù)度。另外,在實際公安工作應(yīng)用中,可建立熱點輿情數(shù)據(jù)庫,應(yīng)用Nutch實時過濾區(qū)域信息,查詢輿情熱點,提高公安輿情信息監(jiān)控工作效率。
[1]羅剛,王振東.自己動手寫網(wǎng)絡(luò)爬蟲[M].北京:清華大學(xué)出版社,2010.
[2]張俊林.這就是搜索引擎核心技術(shù)詳解[M].北京:電子工業(yè)大學(xué)出版社,2012.
[3]黃德才,威化春.PageRank算法研究[J].計算機工程,2006,32(4).
[4]Brin S,Page L.The anatomy of a large-scale hypertextual Web search engine[J].Computer Network and ISDN Systems,1998,30.
[5]童威.基于Nutch框架下的中小型網(wǎng)絡(luò)開源搜索引擎的研究與應(yīng)用[D].貴州:貴州大學(xué),2010.
[6]何世林.基于Java技術(shù)的搜索引擎研究與實現(xiàn)[D].四川:西南交通大學(xué),2006.
[7]龔磊,武友新.Lucene全文搜索系統(tǒng)的研究與實現(xiàn)[J].計算機與數(shù)學(xué)工程,2010.
[8]李曉明,閆宏飛,王繼民.搜索引擎—原理、技術(shù)與系統(tǒng)[M].北京:科學(xué)出版社,2005.
(責(zé)任編輯:孟凡騫)
TP391.1
A
2095-7939(2015)01-0039-06
2014-11-10
公安部公安理論及軟科學(xué)研究項目(編號:2012LLYJXJXY052);遼寧省教育科學(xué)“十二五”規(guī)劃立項課題(編號:JG14db440)。
作簡簡介:肖萍(1978-),女,黑龍江雞西人,中國刑警學(xué)院網(wǎng)絡(luò)犯罪偵查系講師,碩士,主要從事網(wǎng)絡(luò)安全、信息監(jiān)控研究。