監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 簽約案例 | 購買價格 | 在線試用 | 手機APP | 產(chǎn)品資料
X 關(guān)閉

用開源軟件建垂直搜索引擎

申請免費試用、咨詢電話:400-8352-114

文章來源:泛普軟件

針對搜索引擎的各種開源技術(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ù)情報研究所)

發(fā)布:2007-04-21 11:07    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
長沙OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢

泛普長沙OA軟件行業(yè)資訊其他應(yīng)用

長沙OA 長沙新聞動態(tài) 長沙OA信息化 長沙OA快博 長沙OA軟件行業(yè)資訊 長沙軟件開發(fā)公司 長沙門禁系統(tǒng) 長沙物業(yè)管理軟件 長沙倉庫管理軟件 長沙餐飲管理軟件 長沙網(wǎng)站建設(shè)公司