當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 湖南OA系統(tǒng) > 長沙OA系統(tǒng) > 長沙OA軟件行業(yè)資訊
用開源軟件建垂直搜索引擎
針對搜索引擎的各種開源技術(shù)是開源社區(qū)的一枝奇葩,它大大縮短了構(gòu)建搜索應(yīng)用的周期,并使得根據(jù)特定需求打造個性化應(yīng)用的垂直搜索引擎系統(tǒng)成為可能。作為一個獨立的企業(yè)搜索應(yīng)用解決方案,Solr在美國的眾多知名網(wǎng)站中得到應(yīng)用,如美國最大的科技資訊類網(wǎng)站CNet。Solr基于高性能的Lucene開發(fā),它不僅實現(xiàn)了比Lucene更為豐富的查詢語言和更為優(yōu)異的查詢性能,而且實現(xiàn)了可配置、可擴展,對外提供類似于Web 服務(wù)的API接口。用戶可通過Http請求向搜索引擎服務(wù)器提交指定格式的XML文件生成索引,也可以通過“Http Get”操作提出查詢請求,并得到XML格式的返回結(jié)果。Solr結(jié)合其他開源搜索軟件成為構(gòu)建行業(yè)垂直搜索引擎的優(yōu)選方案。
垂直搜索引擎的總體結(jié)構(gòu)
本文所述的電子元器件垂直搜索引擎以Solr 1.4為核心框架,綜合應(yīng)用Nutch、IK Analyzer等開源軟件,充分利用它們靈活的配置、豐富的功能以及高效的性能,力求用最簡單的代碼,快速實現(xiàn)海量電子元器件信息的采集、文本搜索、參數(shù)檢索,滿足技術(shù)研究人員與市場采購人員對于行業(yè)領(lǐng)域知識的專、精、深要求。
電子元器件垂直搜索引擎系統(tǒng)包括數(shù)據(jù)采集、數(shù)據(jù)加工、數(shù)據(jù)規(guī)劃和管理、搜索服務(wù)四個主要部分。數(shù)據(jù)采集部分負(fù)責(zé)對Internet、Intranet、內(nèi)部電子文檔、結(jié)構(gòu)化數(shù)據(jù)(關(guān)系數(shù)據(jù)庫、XML)等進行抓取、濾重、分類、摘要; 數(shù)據(jù)加工部分負(fù)責(zé)對采集來的數(shù)據(jù)進行篩選、編輯和審校; 數(shù)據(jù)規(guī)劃和管理部分負(fù)責(zé)系統(tǒng)元數(shù)據(jù)的定義與管理,包括分類體系、特性參數(shù)、參數(shù)類型、計量單位等; 搜索服務(wù)則為用戶提供分類導(dǎo)航、數(shù)據(jù)檢索、行業(yè)報告及其他個性定制服務(wù)(系統(tǒng)的總體結(jié)構(gòu)如附圖所示)。本文結(jié)合選取其中的數(shù)據(jù)采集(Web頁面抓取、結(jié)構(gòu)化數(shù)據(jù)采集、中文支持)、搜索結(jié)果呈現(xiàn)(層面瀏覽、高亮顯示、分頁處理)等幾個重點實現(xiàn)方法進行介紹。
數(shù)據(jù)采集
1. Web頁面抓取
采集互聯(lián)網(wǎng)Web頁面的數(shù)據(jù)并非Solr所長,我們可以借助在這方面有著突出表現(xiàn)的Nutch。Nutch基于Hadoop分布式系統(tǒng),既可以在單臺機器上運行,也可以在多臺機器構(gòu)成的集群上運行。Nutch可以根據(jù)用戶需要配置優(yōu)先抓取某些頁面,而且抓取質(zhì)量很高。
本系統(tǒng)我們利用Solr作為處理搜索結(jié)果的源和入口,而讓Nutch負(fù)責(zé)它最擅長的工作: 抓取和提取內(nèi)容。Nutch的配置文件是nutch-site.xml,配置的內(nèi)容包括指定蜘蛛的名稱、激活插件、限制單機一次運行抓取的最大URL數(shù)、指定抓取規(guī)則等。完成這些基本配置以后就可以進行抓取分析操作。
2. 結(jié)構(gòu)化數(shù)據(jù)采集
為了充分利用現(xiàn)有資源,提高數(shù)據(jù)檢索效率,我們把收錄了100多萬條電子元器件產(chǎn)品、1000多萬條特性參數(shù)信息的中國電子元器件產(chǎn)品數(shù)據(jù)庫和中國電子廠商數(shù)據(jù)庫、韓國電子元器件信息庫作為結(jié)構(gòu)化數(shù)據(jù)源,向Solr一次全部導(dǎo)入數(shù)據(jù),后續(xù)維護的部分使用增量導(dǎo)入。用于搜索的表主要涉及產(chǎn)品基本信息表、廠商基本信息表、分類表、特性參數(shù)表、參數(shù)模板表、模板信息表、產(chǎn)品特性參數(shù)值表、計量單位表等。
Solr通過可配置的方式將數(shù)據(jù)庫中多列、多表的數(shù)據(jù)生成Solr文檔。配置的方法是在域結(jié)點內(nèi)定義具體的字段(類似數(shù)據(jù)庫中的字段),然后通過配置文件導(dǎo)入所有數(shù)據(jù),發(fā)現(xiàn)并處理由插入、更新帶來的變化。
3. 中文搜索支持
Solr的分析包并沒有直接提供中文搜索支持。這里選用輕量級的中文分詞工具包IK Analyzer來配合工作。IK Analyzer基于Java開源,如今新版本的IKAnalyzer 3.2.0已發(fā)展為面向Java 的公用分詞組件,獨立于Lucene 項目,同時提供了對Solr的專用接口。
電子元器件搜索引擎系統(tǒng)利用的IK Analyzer特性包括: 特有的“正向迭代最細(xì)粒度切分算法”具有60 萬字/秒的高速處理能力; 多詞元處理器分析模式,支持英文字母(IP 地址、Email、URL)、數(shù)字(日期、常用中文數(shù)量詞、羅馬數(shù)字、科學(xué)計數(shù)法),中文詞匯(姓名、地名處理)等分詞處理; 優(yōu)化的詞典存儲更小占內(nèi)存用; 針對Lucene 全文檢索優(yōu)化的查詢分析器IKQueryParser; 采用歧義分析算法優(yōu)化查詢關(guān)鍵字的搜索排列組合,可極大地提高檢索的命中率。
由于電子元器件垂直搜索應(yīng)用面向特定的專業(yè)領(lǐng)域,IK Analyzer本身雖然已經(jīng)提供很豐富的常用詞匯,但對于專業(yè)性強的應(yīng)用仍然顯得捉衿見肘。好在IK Analyzer提供了良好的擴展能力,我們利用配置文件輕易實現(xiàn)了用戶詞典的擴展與定制,這樣就可以搜索到如“精密薄膜柱狀無引線電阻器”、“半波隨機型固體繼電器”這些專業(yè)詞匯了。
搜索結(jié)果呈現(xiàn)
Solr的搜索結(jié)果通常以XML格式返回,這對于普通用戶而言不合適,不過Solr提供了多種途徑(如正則表達式和文本解析)將搜索返回的結(jié)果信息進行重新布局,以產(chǎn)生用戶易于理解的可視頁面,但都需要大量的編碼工作。在系統(tǒng)中我們利用XSLT把XML格式的結(jié)果文件轉(zhuǎn)換成HTML文件。經(jīng)過轉(zhuǎn)換后,就可以得到能看到搜索結(jié)果的頁面了。
Solr提供了層面瀏覽(facet)功能,它類似于一種分類篩選。運行層面無需在Solr 中進行配置,但可能需要按照新的方式對應(yīng)用程序內(nèi)容進行索引。在已索引的字段中完成分層,層面對未進行斷詞的非小寫詞最為有效。Facet 字段通常不需要存儲,因為分層面的總體思想就是將可讀的值顯示給用戶。要注意的是, Solr 沒有在層面中創(chuàng)建類別,必須由應(yīng)用程序自身在索引期間進行添加,正如在索引應(yīng)用程序時給文檔指派關(guān)鍵字一樣。如果存在層面字段,Solr 就提供了查明這些層面及其計數(shù)的邏輯。
另外,為了在搜索結(jié)果中取得最匹配的一段文本并突出顯示出來,有必要對搜索結(jié)果進行高亮顯示。高亮顯示可修改配置文件實現(xiàn)。該配置中包括了高亮文本時使用的前綴和后綴(通常在此指定突出顯示文本的字體、字號、顏色或其他風(fēng)格)。
如果搜索結(jié)果較多還需要分頁,但我們不希望自行編寫復(fù)雜的代碼實現(xiàn)分頁。我們在系統(tǒng)中使用了一個開源的分頁插件,專門為Solr量身定制,由它對 Solr 的搜索結(jié)果進行分頁處理。
實際上,Solr的功能遠不止以上這些,還有很多通過簡單配置和少量修改即可實現(xiàn)的搜索功能有待研究開發(fā)。目前,我們圍繞以Solr為主體的探索以及各項功能的實現(xiàn)仍在繼續(xù),力求在保證系統(tǒng)功能與性能的前提下,充分利用開源軟件的優(yōu)勢,降低開發(fā)成本。
圖注:電子元器件垂直搜索引擎系統(tǒng)結(jié)構(gòu)圖
(作者單位:董婭為電子工業(yè)出版社、周峻松為工業(yè)和信息化部電子科學(xué)技術(shù)情報研究所)
- 1IT治理,為保險信息系統(tǒng)“保險”
- 2解決Hyper-V高可用集群服務(wù)和網(wǎng)絡(luò)問題
- 3重復(fù)數(shù)據(jù)刪除 為何最吸引CIO的眼球
- 4高清監(jiān)控存儲瓶頸 H.264欲統(tǒng)一編碼標(biāo)準(zhǔn)
- 5淘寶數(shù)據(jù)庫專家深入解析數(shù)據(jù)倉庫架構(gòu)
- 6長沙OA軟件的信息門戶的應(yīng)用需求
- 7固態(tài)硬盤取代旋轉(zhuǎn)磁盤,難!
- 8OA辦公系統(tǒng)必須為企業(yè)解決業(yè)務(wù)管理需求為上
- 9協(xié)同管理軟件在集團中的公文管理解決方案
- 10六大方法讓云計算部署如虎添翼
- 11IIS部署虛擬化時需要考慮的四件事
- 12綠色IT技術(shù)促進IT節(jié)能升級
- 13數(shù)據(jù)中心里的創(chuàng)新之舉
- 14融合通信平臺或為應(yīng)急通信之必然歸宿?
- 15企業(yè)應(yīng)用架構(gòu)為什么仍然重要
- 16三網(wǎng)融合加速VoIP取代傳統(tǒng)電話的進程
- 17讓企業(yè)SOA項目更可控之必備十大戒條
- 18什么是統(tǒng)一存儲?
- 19OA辦公系統(tǒng)與Oracle人員組織集成應(yīng)用
- 20虛擬化響起安全警報
- 21云計算實施性中的技術(shù)問題
- 22數(shù)據(jù)中心6大技術(shù)創(chuàng)新
- 23PDM工作流管理技術(shù)
- 24通過配置虛擬產(chǎn)品來管理供應(yīng)鏈
- 25基站回傳,3G網(wǎng)絡(luò)建設(shè)的基石
- 26電信級技術(shù)已悄然在網(wǎng)絡(luò)視頻監(jiān)控中啟動
- 27智能企業(yè)網(wǎng)產(chǎn)品分析:HP ProCurve
- 28實施統(tǒng)一存儲
- 29電子證帶來的監(jiān)管變革 具有里程碑意義
- 30如何為Windows7創(chuàng)建系統(tǒng)恢復(fù)盤
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓