張弘弦 田玉玲
摘 要: Web垂直搜索引擎是一個復雜的信息系統(tǒng),目前大多數(shù)研究都集中在解決搜索引擎中出現(xiàn)的某一個方面的問題,仍缺乏對Web垂直搜索引擎完整實現(xiàn)過程的相關研究。針對這個問題,提出一種三層架構(gòu)的Web垂直搜索引擎的實現(xiàn)過程,整個過程包含數(shù)據(jù)準備、查詢處理和界面交互。使用Java語言和相關的開源工具,對實現(xiàn)過程描述的具體任務進行實際操作,實現(xiàn)了一個查詢手機信息的Web垂直搜索引擎。該三層架構(gòu)和實現(xiàn)過程有效地為構(gòu)建面向主題的完整Web垂直搜索引擎提供了理論依據(jù)和實踐指導。
關鍵詞: Web搜索; 搜索引擎實現(xiàn); 垂直搜索架構(gòu); 爬蟲
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2016)08?0055?05
Research on implementation process of Web vertical search engine
ZHANG Hongxian, TIAN Yuling
(School of Computer Science and Technology, Taiyuan University of Technology, Taiyuan 034000, China)
Abstract: The Web search engine is a complex information system. However, most researches are concentrated on one detailed problem appearing in a aspect of the search engine, but they lack of the correlational research on the complete implementation process of Web vertical search engines. Aiming at this problem, the implementation process of a Web vertical search engine with a three?layer architecture is proposed, in which data preparation, query processing and interface interaction are contained. An actual operation of a certain task describing the implementation process was performed with Java platform and relative open?source tools. And by this operation, the Web vertical search engine that could query mobile information was realized. The three?layer architecture and implementation process provide a theoretical basis and practical guidance for building a complete subject?oriented Web vertical search engine.
Keywords: Web search; search engine implementation; architecture of vertical search engine; crawler
0 引 言
從2000年開始,Web垂直搜索引擎開始贏得用戶的親睞[1?2]。視頻、音樂、圖片、軟件、貼吧、地圖分門別類展開搜索,專業(yè)性更強,主題相關性更高。然而Web垂直搜索引擎的應用主題并不局限,擁有非常廣闊的發(fā)展空間,例如面對電子商務的商品搜索,數(shù)碼產(chǎn)品信息搜索以及近年開始出現(xiàn)的微博搜索。垂直搜索的出現(xiàn)主要有兩個方面的原因:一是通用搜索引擎索引Web的全部內(nèi)容變得越來越難,而垂直搜索引擎索引數(shù)據(jù)量較小且專業(yè),投入成本也相對較低;二是垂直搜索引擎提供的搜索質(zhì)量較高,因為它可以搜索到通用搜索引擎不能搜尋到的頁面,而且在可搜索頁面上提供更強有力的搜索功能。垂直搜索引擎與通用搜索引擎的最大區(qū)別在于對網(wǎng)頁信息進行結(jié)構(gòu)化信息抽取,即將網(wǎng)頁的非結(jié)構(gòu)化數(shù)據(jù)提取成特定的結(jié)構(gòu)化數(shù)據(jù)。構(gòu)建一個垂直搜索引擎主要有兩種方法:一種方法是通過爬蟲爬取某種主題網(wǎng)頁而構(gòu)建專業(yè)索引;另一種方法是為用戶提供專業(yè)化搜索的接口。
Web搜索引擎是種復雜、多組件信息檢索系統(tǒng)的具體應用[3],也因其應用在擁有超大規(guī)模數(shù)據(jù)的互聯(lián)網(wǎng)中,使構(gòu)建Web搜索引擎變得比較困難。已有眾多的研究者參與到Web搜索引擎的研究中,Brin和Page發(fā)表論文首次公開大規(guī)模Web搜索引擎Google的設計原型[4],提出Web搜索引擎的基本組件包括爬蟲(Crawler)、索引組件、搜索組件、排序系統(tǒng)以及反饋組件。高效Web垂直搜索的關鍵之一在于爬蟲能否精確爬取主題相關的Web文檔,Soumen等人提出聚焦爬蟲[5](Focused Crawler),利用一種能夠評估網(wǎng)頁是否與主題相關的分類器選擇性地爬取與預定義主題相關的頁面,實現(xiàn)了以目標為導向的爬取。文獻[6]開發(fā)了一種潛語義索引分類器,將鏈接分析和文本內(nèi)容結(jié)合起來,目的是抓取指定主題域的Web文檔。文獻[7]設計并實現(xiàn)了一種基于網(wǎng)格架構(gòu)的大型Web搜索引擎,討論實現(xiàn)流程和細節(jié),對Web垂直搜索引擎的研究提供了寶貴的經(jīng)驗。信息檢索領域的研究成果對Web搜索引擎有著較高的參照價值,特別是檢索模型的研究更加重要,Web搜索引擎的排序組件好壞很大程度上決定了用戶體驗。信息檢索模型得到了飛速發(fā)展,傳統(tǒng)的檢索模型包括布爾模型、向量空間模型、概率模型、語言模型?,F(xiàn)代檢索模型的建立大多通過排序?qū)W習方法得到,即利用機器學習技術(shù)在數(shù)據(jù)集上自動創(chuàng)建排序模型[8]。這些研究成果很多通過開源軟件實現(xiàn),這些工具不僅為開發(fā)軟件提供先進的技術(shù)支持,而且大大縮短了開發(fā)周期。
本文提出了一種Web垂直搜索引擎的實現(xiàn)過程,以該過程為基礎開發(fā)了一個查詢與手機相關信息的Web垂直搜索引擎,并且對實現(xiàn)原理和細節(jié)進行了詳細的闡述。此垂直搜索引擎可以為搜索手機相關信息的用戶提供直觀的、快捷的、有效的手機信息搜索服務,驗證了這種實現(xiàn)過程的有效性和完整性。
1 Web垂直搜索引擎的實現(xiàn)過程
Web垂直搜索引擎與通用搜索引擎原理類似,都需要從互聯(lián)網(wǎng)上下載網(wǎng)頁、建立索引,響應用戶查詢。但是垂直搜索引擎可以返回結(jié)構(gòu)化的數(shù)據(jù),這些數(shù)據(jù)經(jīng)過人工分析與整理再存入數(shù)據(jù)庫中。本文將Web垂直搜索引擎的實現(xiàn)過程分為3層,分別為:數(shù)據(jù)準備層、提供查詢服務層、前臺交互層。這3層可互相獨立開發(fā),最終整合到一起形成一套完整的Web垂直搜索引擎。圖1為一種Web垂直垂直搜索引擎實現(xiàn)過程。
1.1 數(shù)據(jù)準備層
數(shù)據(jù)準備層的目的是準備用于檢索的數(shù)據(jù),這些數(shù)據(jù)最終存放在關系數(shù)據(jù)庫中并建立倒排索引。Web垂直搜索引擎的目的是為用戶提供更專業(yè)、主題性更強的搜索服務,這種服務與大量主題相關的數(shù)據(jù)為基礎,數(shù)據(jù)處理分為兩個階段,第一個階段為采集原始數(shù)據(jù),原始數(shù)據(jù)來自互聯(lián)網(wǎng)某些主題性較強的、數(shù)據(jù)來源可靠的網(wǎng)站。原始數(shù)據(jù)大多是未經(jīng)處理的無結(jié)構(gòu)網(wǎng)頁,這些原始網(wǎng)頁無法支持搜索服務并返回給用戶查看。第二階段為數(shù)據(jù)分析與處理,將原始無結(jié)構(gòu)網(wǎng)頁中的數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù),并將這些結(jié)構(gòu)化數(shù)據(jù)存儲在關系數(shù)據(jù)庫中,這些存儲在數(shù)據(jù)庫中數(shù)據(jù)最終以更加直接的形式展示給用戶。然而,關系數(shù)據(jù)庫中模糊查詢難以應對海量數(shù)據(jù)查詢,所以需要建立一種面向詞匯的數(shù)據(jù)結(jié)構(gòu),即倒排索引,以實現(xiàn)毫秒級的查詢性能。
數(shù)據(jù)準備層主要包含以下5個過程:
(1) 選擇主題信息來源網(wǎng)站和網(wǎng)頁
認真選擇主題信息來源網(wǎng)站以確保原始數(shù)據(jù)的可靠性,通常需要遵循以下4個原則:來源網(wǎng)站沒有屏蔽爬蟲對網(wǎng)頁的爬?。痪W(wǎng)頁內(nèi)容不是JavaScript動態(tài)生成的。爬蟲不需要模擬瀏覽器解釋腳本去生成網(wǎng)頁內(nèi)容,否則會嚴重影響爬蟲效率;網(wǎng)站中網(wǎng)頁URL有統(tǒng)一的風格。這樣的URL更容易被爬蟲抓取,數(shù)據(jù)更加準確;選擇訪問量比較大的知名網(wǎng)站,保證數(shù)據(jù)源可靠性。
(2) 網(wǎng)站和網(wǎng)頁內(nèi)容分析
分析網(wǎng)頁的目的是定向抓取網(wǎng)頁,在確定主題信息來源網(wǎng)站之后,為了能夠準確獲取主題數(shù)據(jù),需要對網(wǎng)站的URL結(jié)構(gòu)進行分析,找出實際擁有主題信息的一級URL頁面,該頁面通常擁有該主題下全部子主題的二級URL鏈接,分析出這些二級URL鏈接作為種子鏈接交給爬蟲。分析方法主要以人工觀測為主,以程序分析為輔。通過觀察一級網(wǎng)頁URL規(guī)律,查看網(wǎng)頁源碼,再設計抽取二級URL的計算機程序,利用程序自動抽取種子鏈接。
(3) 定向抓取網(wǎng)頁
抓取網(wǎng)頁的目的是把主題相關的網(wǎng)頁下載到本地磁盤。爬蟲是一種能夠從互聯(lián)網(wǎng)上自動抓取網(wǎng)頁并下載到本地的程序,這種程序的輸入是一些URL鏈接,這些鏈接也稱之為種子,爬蟲抓取種子網(wǎng)頁的結(jié)果是將所有相關目標網(wǎng)頁下載到本地磁盤中。
(4) 分析并抽取網(wǎng)頁內(nèi)容到本地
將網(wǎng)頁中無規(guī)則的數(shù)據(jù)規(guī)范地保存到本地文件中,數(shù)據(jù)保存采取統(tǒng)一的格式,使其能夠存入數(shù)據(jù)庫并建立全文索引。
(5) 存入數(shù)據(jù)庫并建立索引
格式化的數(shù)據(jù)不能僅存儲在文本文件中,否則提取數(shù)據(jù)的開銷非常大。將數(shù)據(jù)存儲到數(shù)據(jù)庫中,使用數(shù)據(jù)庫統(tǒng)一管理所有數(shù)據(jù),這樣訪問速度與安全性也大大增強。搜索引擎中數(shù)據(jù)準備過程中最關鍵的技術(shù)就是建立索引,用戶查詢首先訪問的是索引而不是數(shù)據(jù)庫,通過索引查找關鍵詞然后返回結(jié)果文檔的數(shù)據(jù)庫ID,再到數(shù)據(jù)庫中查找具體記錄。
數(shù)據(jù)準備層的任務集中于數(shù)據(jù)采集、預處理、數(shù)據(jù)存儲以及索引。這一層的活動對用戶不可見,最終的產(chǎn)物是保存主題相關結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)庫以及這些數(shù)據(jù)上的倒排索引。
1.2 提供查詢服務層
查詢服務層首先將用戶的查詢字符串轉(zhuǎn)換為可識別的對象,并進行預處理,然后發(fā)送給相應的查詢方法處理,最后返回與查詢字符串匹配的數(shù)據(jù)對象列表。要得到最后的數(shù)據(jù)對象列表實際經(jīng)過2次查詢,第一次查詢倒排索引得到所有相關文檔ID,這次查詢的時間復雜度是O(1),因為倒排索引的詞典結(jié)構(gòu)多為哈希表。第二次查詢將文檔ID發(fā)送至數(shù)據(jù)庫引擎,根據(jù)文檔ID查詢文檔的全部信息,并且將所有查詢到的文檔以對象的方式返回。
1.3 前臺交互層
前臺交互層的重點主要是加強用戶輸入和輸出的體驗,主要包含兩個方面:一是隨著用戶按鍵自動彈出提示關鍵字列表;二是直接展示查詢結(jié)果詳細信息。列表提示功能使用Ajax異步響應,當onkeyup事件發(fā)生后,向數(shù)據(jù)庫服務器發(fā)送模糊查詢SQL語句,將查詢結(jié)果列表返回給JavaScript代碼,JavaScript修改dom將提示列表展示在搜索框下面。查詢結(jié)果顯示數(shù)據(jù)要直接,例如查詢數(shù)碼產(chǎn)品的結(jié)果中,產(chǎn)品圖片和參數(shù)直接顯示在頁面上,技術(shù)上同樣是利用Ajax技術(shù)減少延時來增加用戶體驗。
2 Web垂直搜索引擎具體實現(xiàn)
下面基于以上實現(xiàn)過程在Java平臺上構(gòu)建查詢手機相關信息的Web垂直搜索引擎,構(gòu)建過程分別按照圖1中的3層進行實現(xiàn),并對關鍵技術(shù)和實現(xiàn)原理進行總結(jié)和描述。
2.1 數(shù)據(jù)準備層實現(xiàn)
(1) 選擇主題信息來源網(wǎng)站和網(wǎng)頁。根據(jù)選擇主題網(wǎng)站的原則,最終確定選擇太平洋電腦網(wǎng)(http://www.pconline.com.cn/)作為手機信息數(shù)據(jù)的來源網(wǎng)站,數(shù)據(jù)源網(wǎng)站可以有多個。作為一個綜合性IT網(wǎng)站,手機頻道的一級URL頁面為:
http://product.pconline.com.cn/mobile/list.shtml
(2) 網(wǎng)站和網(wǎng)頁內(nèi)容分析。通過查看一級URL頁面源碼,并且分析網(wǎng)站URL鏈接規(guī)律,得出手機信息數(shù)據(jù)所在的URL地址規(guī)格,如下所示:
手機信息:http://product.pconline.com.cn/mobile/品牌/編號.html。
手機圖片:http://img.pconline.com.cn/images/product/編號
確定URL規(guī)格的目的是為了確定抓取哪些URL規(guī)格的頁面。獲取所有手機品牌的URL鏈接后將這些鏈接作為種子,送給爬蟲抓取。
(3) 定向抓取網(wǎng)頁。爬蟲的輸入是待抓取URL種子鏈接,而爬蟲抓取的結(jié)果就是將預定抓取的HTML和圖片等資源下載到本地磁盤。本次開發(fā)使用開源爬蟲框架Heritrix[9],它是一個開源的Java爬蟲框架,它保留了各種各樣的配置接口用于定制和擴展爬蟲的功能,為了能夠準確抓取目標資源,從官方文檔中了解Heritrix本身運行機制并進行配置和定制。
(4) 分析并抽取網(wǎng)頁內(nèi)容到本地抓取到的原始網(wǎng)頁和圖片不能被直接利用,需要將網(wǎng)頁中的有用數(shù)據(jù)抽取出來并以一定的格式保存起來,這個過程可以稱之為結(jié)構(gòu)化數(shù)據(jù)提取。每一個有效的HTML文件都對應一個txt文件,txt文件的內(nèi)容和文件名稱都有固定的結(jié)構(gòu)。本次開發(fā)中將文件名規(guī)范為這樣的格式:“手機名?型號?時間字符串.txt”。txt文件的內(nèi)容格式如下:
原始網(wǎng)頁URL
品牌名(如華為)
價格
屬性名1:值1(如操作系統(tǒng):android2.2)…
============================
產(chǎn)品圖片編碼后的文件名
結(jié)構(gòu)化提取包含3個過程:一個是文件的I/O操作,此操作可以使用Java.io包實現(xiàn);另一個是從HTML網(wǎng)頁中提取數(shù)據(jù),此操作可以使用開源解析軟件實現(xiàn);第三個過程是對圖片進行轉(zhuǎn)存處理,這個過程的目的是將手機信息和圖片名稱進行映射,新圖片名將原圖片名經(jīng)過MD5編碼后得到。HTML元素之間是以分層嵌套的結(jié)構(gòu)組織在一起的,HTML文檔的這種結(jié)構(gòu)稱為HTML文檔樹。本次開發(fā)中使用開源HTML解析庫HtmlParser[10],使用這個庫可以方便快速地從HTML網(wǎng)頁中提取標簽節(jié)點,文本節(jié)點和和屬性節(jié)點的值。同樣,在開發(fā)過程中使用該解析包需要了解其API和調(diào)用機制,這些內(nèi)容來源于官方文檔。
(5) 存入數(shù)據(jù)庫并建立索引。磁盤中的數(shù)據(jù)文件是結(jié)構(gòu)化數(shù)據(jù),但是仍然不能直接作為查詢的直接數(shù)據(jù)源,其原因在于磁盤I/O速度較慢。故而將這些文件的信息存入關系數(shù)據(jù)庫中,數(shù)據(jù)庫表的字段對應文件內(nèi)容結(jié)構(gòu)的字段,每一個文件的數(shù)據(jù)都對應表的一條記錄。在查詢數(shù)據(jù)庫時按照產(chǎn)品的主關鍵字(如ID號)查詢,查詢效率較高。但是用戶的查詢是若干關鍵詞,實際是字符串格式,如果直接將查詢關鍵詞放入SQL語句中,向數(shù)據(jù)庫發(fā)送模糊查詢匹配關鍵詞,那么對于成千上萬的記錄來說效率非常低。所以,并不能直接對數(shù)據(jù)庫進行查詢關鍵詞的模糊查詢,而首先將查詢發(fā)送給倒排索引進行查詢。
倒排索引一種面向詞匯的查找結(jié)構(gòu),通常使用哈希表存儲,故查詢效率非常高。倒排索引包括兩個部分:一個部分是詞典;另一個部分是倒排列表。建立索引的過程中,首先要使用分詞程序?qū)κ謾C信息文本文件分詞建立詞典,每個詞典項中包含一個指向?qū)古帕斜淼闹羔?,倒排列表由若干倒排項組成,倒排項存儲的是包含該詞匯的文檔屬性(文檔ID,詞頻,單詞在該文檔中出現(xiàn)的位置)。
用戶的查詢首先由同樣的分詞程序切割為若干詞匯,然后查詢詞典找出對應倒排列表,按照某種規(guī)則對倒排列表進行合并,然后將最后的文檔列表ID發(fā)送給數(shù)據(jù)庫查詢整個文檔信息,進而將數(shù)據(jù)庫的返回結(jié)果展示給用戶。綜上,用戶的查詢處理過程為:“查詢索引”→“獲取每個相關文檔的數(shù)據(jù)庫ID”→“查詢數(shù)據(jù)庫”→“返回給用戶”。這種查詢機制決定了必須先將手機信息存儲在數(shù)據(jù)庫,然后建立索引,構(gòu)建索引和執(zhí)行查詢的機理如圖2所示。
本次開發(fā)中使用MySQL數(shù)據(jù)庫存儲數(shù)據(jù),使用開源Java全文檢索工具包Lucene建立索引[11],使用基于詞庫的字符串匹配分詞模式,以正向最大匹配為分詞算法,配合極易中文分詞組件進行分詞?;谠~庫的分詞原理是使用正向最大匹配算法掃描待分詞文本,將掃描出的詞匯與詞庫中的詞進行比對,按照一定的匹配粒度去判別該詞匯是否被切分出來加入索引中,所以分詞前必須在原有詞庫基礎上增加主題相關的詞匯作為詞庫的一部分,開發(fā)中首先解析所有txt文件名,將所有手機名稱和不同的型號解析出來作為詞匯單獨存儲在一個文本文件中,通過簡單的配置即可將文件的詞匯加入到極易分詞的詞庫中,選用極易分詞組件的另一個原因是它實現(xiàn)了Lucene標準分詞解析器的接口,從而可以直接整合進Lucene[12]。對于查詢字符串必須使用同樣的分詞程序去分詞,以同樣的規(guī)則切分出待查詢詞匯,在索引的詞典中查詢是否存在該詞匯,如果存在則返回該詞匯對應的倒排列表,否則返回空,對于多詞匯查找的處理是根據(jù)邏輯運算對倒排列表進行合并后再返回。倒排列表中的文檔排序模型是經(jīng)典的向量空間模型,該模型以文檔的TF*IDF值為向量的特征,實際參數(shù)可以在Lucene中按需設置。
圖2 索引與查詢機理圖
2.2 提供查詢服務層實現(xiàn)
提供查詢服務作為一個中間層,在整個搜索引擎中起著非常重要的連接作用,它接收用戶的查詢字符串并預處理,然后在索引和數(shù)據(jù)庫中查詢相關文檔并返回給用戶。
通過圖2可知搜索模塊和分詞模塊一起提供查詢服務,實驗中分詞模塊與建立索引所用分詞的模塊有相同的配置,而搜索模塊承擔查詢索引和數(shù)據(jù)庫的任務,由Lucene提供的搜索模塊實現(xiàn),開發(fā)中這2個任務分別由2個方法實現(xiàn),它們是查詢服務類中的2個方法,查詢索引方法的參數(shù)是查詢關鍵詞對象,返回的是相關文檔列表對象,查詢數(shù)據(jù)庫方法的參數(shù)是整型的文檔ID,返回文檔對象,如圖3所示。
2.3 前臺交互層實現(xiàn)
前臺交互是直接面向用戶的應用層,為了增加用戶在輸入和輸出上的體驗,分別實現(xiàn)2種功能:一是用戶每次敲擊按鍵時都會提示關鍵詞列表;二是結(jié)果列表頁面上直接展示主要結(jié)果,包括圖片和其他重要屬性。開發(fā)中,列表提示的數(shù)據(jù)來源于已經(jīng)抽取得到的手機相關詞匯,將這些詞匯存入MySQL數(shù)據(jù)庫的一張表里,針對該表設計一個查詢方法,參數(shù)是用戶按鍵后提交的當前字符串,實現(xiàn)機理是向該表發(fā)送模糊查詢,返回字符串數(shù)組(一般規(guī)定提示字符串個數(shù)不超過10)。
圖3 前臺交互層與提供查詢服務層交互
該方法的調(diào)用是通過用戶觸發(fā)onkeyup事件,隨即以Ajax機制向服務器發(fā)送字符串并完成調(diào)用,前端通過Ajax代碼接收返回的字符串數(shù)組作為顯示數(shù)據(jù),使用JavaScript改變dom的方式將這些字符串以列表的方式顯示在輸入框的下面。當點擊搜索按鈕后,開始向服務器發(fā)送查詢,前臺交互層與中間層的交互如圖3所示,它們的交互通過Ajax框架DWR來完成,這樣有效降低延時,能夠明顯提高用戶體驗。用戶查詢的關鍵字(query)以及每頁的起始索引號(startindex)封裝在Request對象中,直接通過Ajax發(fā)送給查詢服務層的SearchServiceImpl對象的getSearchResults方法,該方法返回的SearchResults對象包含了相關文檔ID的列表,然后將文檔的ID作為參數(shù)發(fā)送給getSearchResultById方法查詢數(shù)據(jù)庫,返回文檔全部信息并封裝在SearchResult對象中,最后將SearchResult對象返回到前臺展示給用戶。
3 結(jié) 論
實驗中多次查詢的平均時間在毫秒級,完成了整個Web垂直搜索引擎的設計目標。驗證了這種實現(xiàn)過程的完整性和有效性。提出的三層架構(gòu)面向的是構(gòu)建主題相關的Web垂直搜索引擎,通過實現(xiàn)查詢手機信息的Web垂直搜索引擎來提供一種可操作的實施方案,為成功構(gòu)建其他面向其他主題的Web垂直搜索引擎提供理論依據(jù)和技術(shù)參照。整個實現(xiàn)過程利用了Java平臺下的優(yōu)秀開源軟件包,包含了可定制爬蟲Heritrix、網(wǎng)頁解析庫HTMLParser、索引及查詢工具包Lucene、Ajax框架DWR、Bean容器Spring以及MySQL數(shù)據(jù)庫,這些開源軟件為搜索引擎的實現(xiàn)提供了強大的支持,對于這些軟件的具體使用方法和過程本文沒有詳細贅述,而重點討論了構(gòu)建搜索引擎的實現(xiàn)過程、技術(shù)要點和方法。
由于垂直搜索引擎索引數(shù)據(jù)本身就是面向主題的,所以檢索結(jié)果的主題相關度、正確率必然比通用搜索引擎高,而且展示數(shù)據(jù)的能力更強??v觀現(xiàn)有的研究成果,作者認為未來Web垂直搜索引擎主要的研究方向有以下幾個方面:
(1) 結(jié)構(gòu)化數(shù)據(jù)提取自動化。爬蟲應該能夠自動發(fā)現(xiàn)、發(fā)掘Web上主題相關的來源網(wǎng)站,并能夠自動對網(wǎng)站內(nèi)容評級,能夠?qū)崟r監(jiān)控Web主題網(wǎng)站的頁面變化并更新本地的頁面,通過自動化的爬蟲的監(jiān)控、爬取、抽取與更新操作增強搜索引擎的靈活性。
(2) 用戶個性化。個性化搜索引擎盡管理論上已經(jīng)得到發(fā)展,但是從理論到實際應用還需要繼續(xù)研究,搜索引擎應該能夠自動識別用戶種類、意圖,對用戶的需求進行精確預測,并對歧義進行自動矯正,重點在推薦系統(tǒng)、相關反饋方面進行完善。
(3) 數(shù)據(jù)可靠性。由于垂直搜索引擎的返回結(jié)果大多是領域相關的內(nèi)容,返回給用戶的結(jié)果應該對用戶負責,在醫(yī)療、問答、新聞、學術(shù)等領域的返回結(jié)果應保證數(shù)據(jù)來源的準確性,對排名靠前的結(jié)果應特別進行自動的審核,保證信息的可靠性。
本文通訊作者為田玉玲。
參考文獻
[1] 劉天嬌,周瑛.淺析近年來網(wǎng)絡搜索引擎研究現(xiàn)狀:以2001至2010年為例[J].情報科學,2012(8):1192?1195.
[2] 王文鈞,李巍.垂直搜索引擎的現(xiàn)狀與發(fā)展探究[J].情報科學,2010(3):477?480.
[3] 王斌.從信息檢索到搜索引擎[J].產(chǎn)品安全與召回,2009(4):38?43.
[4] BRIN S, PAGE L. The anatomy of a large?scale hypertextual Web search engine [J]. Computer networks and isdn systems, 1998, 30: 107?117.
[5] CHAKRABARTIA Soumen, VAN DEN BERGB Martin, DOMC Byron. Focused crawling: A new approach to topic?specific Web resource discovery [J]. Computer networks, 1999, 31: 1623?1640.
[6] ALMPANIDIS G, KOTROPOULOS C, PITAS I. Combining text and link analysis for focused crawling: An application for vertical search engines [J]. Information systems, 2007, 32(6): 886?908.
[7] CAMBAZOGLU Barla, KARACA Evren, KUCUKYILMAZ Tayfun, et al. Architecture of a grid?enabled Web search engine [J]. Information processing & management, 2007, 43(3): 609?623.
[8] LIU Tie?yan. Learning to rank for information retrieval [J]. Foundations and trends in information retrieval, 2009, 3: 225?331.
[9] 白萬民,蘇希樂.Heritrix在垂直搜索引擎中的應用[J].計算機時代,2011(9):7?9.
[10] 桂林斌.基于HtmlParser抽取動態(tài)異構(gòu)Web信息的研究與實現(xiàn)[J].計算機與數(shù)字工程,2009,37(7):161?164.
[11] 張俊,李魯群,周熔.基于Lucene的搜索引擎的研究與應用[J].計算機技術(shù)與發(fā)展,2013,23(6):230?232.
[12] 黃翼彪.實現(xiàn)Lucene接口的中文分詞器的比較研究[J].科技信息,2012(12):246?247.