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

用開(kāi)源軟件建垂直搜索引擎

申請(qǐng)免費(fèi)試用、咨詢(xún)電話(huà):400-8352-114

文章來(lái)源:泛普軟件

針對(duì)搜索引擎的各種開(kāi)源技術(shù)是開(kāi)源社區(qū)的一枝奇葩,它大大縮短了構(gòu)建搜索應(yīng)用的周期,并使得根據(jù)特定需求打造個(gè)性化應(yīng)用的垂直搜索引擎系統(tǒng)成為可能。作為一個(gè)獨(dú)立的企業(yè)搜索應(yīng)用解決方案,Solr在美國(guó)的眾多知名網(wǎng)站中得到應(yīng)用,如美國(guó)最大的科技資訊類(lèi)網(wǎng)站CNet。Solr基于高性能的Lucene開(kāi)發(fā),它不僅實(shí)現(xiàn)了比Lucene更為豐富的查詢(xún)語(yǔ)言和更為優(yōu)異的查詢(xún)性能,而且實(shí)現(xiàn)了可配置、可擴(kuò)展,對(duì)外提供類(lèi)似于Web 服務(wù)的API接口。用戶(hù)可通過(guò)Http請(qǐng)求向搜索引擎服務(wù)器提交指定格式的XML文件生成索引,也可以通過(guò)“Http Get”操作提出查詢(xún)請(qǐng)求,并得到XML格式的返回結(jié)果。Solr結(jié)合其他開(kāi)源搜索軟件成為構(gòu)建行業(yè)垂直搜索引擎的優(yōu)選方案。

垂直搜索引擎的總體結(jié)構(gòu)

本文所述的電子元器件垂直搜索引擎以Solr 1.4為核心框架,綜合應(yīng)用Nutch、IK Analyzer等開(kāi)源軟件,充分利用它們靈活的配置、豐富的功能以及高效的性能,力求用最簡(jiǎn)單的代碼,快速實(shí)現(xiàn)海量電子元器件信息的采集、文本搜索、參數(shù)檢索,滿(mǎn)足技術(shù)研究人員與市場(chǎng)采購(gòu)人員對(duì)于行業(yè)領(lǐng)域知識(shí)的專(zhuān)、精、深要求。

電子元器件垂直搜索引擎系統(tǒng)包括數(shù)據(jù)采集、數(shù)據(jù)加工、數(shù)據(jù)規(guī)劃和管理、搜索服務(wù)四個(gè)主要部分。數(shù)據(jù)采集部分負(fù)責(zé)對(duì)Internet、Intranet、內(nèi)部電子文檔、結(jié)構(gòu)化數(shù)據(jù)(關(guān)系數(shù)據(jù)庫(kù)、XML)等進(jìn)行抓取、濾重、分類(lèi)、摘要; 數(shù)據(jù)加工部分負(fù)責(zé)對(duì)采集來(lái)的數(shù)據(jù)進(jìn)行篩選、編輯和審校; 數(shù)據(jù)規(guī)劃和管理部分負(fù)責(zé)系統(tǒng)元數(shù)據(jù)的定義與管理,包括分類(lèi)體系、特性參數(shù)、參數(shù)類(lèi)型、計(jì)量單位等; 搜索服務(wù)則為用戶(hù)提供分類(lèi)導(dǎo)航、數(shù)據(jù)檢索、行業(yè)報(bào)告及其他個(gè)性定制服務(wù)(系統(tǒng)的總體結(jié)構(gòu)如附圖所示)。本文結(jié)合選取其中的數(shù)據(jù)采集(Web頁(yè)面抓取、結(jié)構(gòu)化數(shù)據(jù)采集、中文支持)、搜索結(jié)果呈現(xiàn)(層面瀏覽、高亮顯示、分頁(yè)處理)等幾個(gè)重點(diǎn)實(shí)現(xiàn)方法進(jìn)行介紹。

數(shù)據(jù)采集

1. Web頁(yè)面抓取

采集互聯(lián)網(wǎng)Web頁(yè)面的數(shù)據(jù)并非Solr所長(zhǎng),我們可以借助在這方面有著突出表現(xiàn)的Nutch。Nutch基于Hadoop分布式系統(tǒng),既可以在單臺(tái)機(jī)器上運(yùn)行,也可以在多臺(tái)機(jī)器構(gòu)成的集群上運(yùn)行。Nutch可以根據(jù)用戶(hù)需要配置優(yōu)先抓取某些頁(yè)面,而且抓取質(zhì)量很高。

本系統(tǒng)我們利用Solr作為處理搜索結(jié)果的源和入口,而讓Nutch負(fù)責(zé)它最擅長(zhǎng)的工作: 抓取和提取內(nèi)容。Nutch的配置文件是nutch-site.xml,配置的內(nèi)容包括指定蜘蛛的名稱(chēng)、激活插件、限制單機(jī)一次運(yùn)行抓取的最大URL數(shù)、指定抓取規(guī)則等。完成這些基本配置以后就可以進(jìn)行抓取分析操作。

2. 結(jié)構(gòu)化數(shù)據(jù)采集

為了充分利用現(xiàn)有資源,提高數(shù)據(jù)檢索效率,我們把收錄了100多萬(wàn)條電子元器件產(chǎn)品、1000多萬(wàn)條特性參數(shù)信息的中國(guó)電子元器件產(chǎn)品數(shù)據(jù)庫(kù)和中國(guó)電子廠商數(shù)據(jù)庫(kù)、韓國(guó)電子元器件信息庫(kù)作為結(jié)構(gòu)化數(shù)據(jù)源,向Solr一次全部導(dǎo)入數(shù)據(jù),后續(xù)維護(hù)的部分使用增量導(dǎo)入。用于搜索的表主要涉及產(chǎn)品基本信息表、廠商基本信息表、分類(lèi)表、特性參數(shù)表、參數(shù)模板表、模板信息表、產(chǎn)品特性參數(shù)值表、計(jì)量單位表等。

Solr通過(guò)可配置的方式將數(shù)據(jù)庫(kù)中多列、多表的數(shù)據(jù)生成Solr文檔。配置的方法是在域結(jié)點(diǎn)內(nèi)定義具體的字段(類(lèi)似數(shù)據(jù)庫(kù)中的字段),然后通過(guò)配置文件導(dǎo)入所有數(shù)據(jù),發(fā)現(xiàn)并處理由插入、更新帶來(lái)的變化。

3. 中文搜索支持

Solr的分析包并沒(méi)有直接提供中文搜索支持。這里選用輕量級(jí)的中文分詞工具包IK Analyzer來(lái)配合工作。IK Analyzer基于Java開(kāi)源,如今新版本的IKAnalyzer 3.2.0已發(fā)展為面向Java 的公用分詞組件,獨(dú)立于Lucene 項(xiàng)目,同時(shí)提供了對(duì)Solr的專(zhuān)用接口。

電子元器件搜索引擎系統(tǒng)利用的IK Analyzer特性包括: 特有的“正向迭代最細(xì)粒度切分算法”具有60 萬(wàn)字/秒的高速處理能力; 多詞元處理器分析模式,支持英文字母(IP 地址、Email、URL)、數(shù)字(日期、常用中文數(shù)量詞、羅馬數(shù)字、科學(xué)計(jì)數(shù)法),中文詞匯(姓名、地名處理)等分詞處理; 優(yōu)化的詞典存儲(chǔ)更小占內(nèi)存用; 針對(duì)Lucene 全文檢索優(yōu)化的查詢(xún)分析器IKQueryParser; 采用歧義分析算法優(yōu)化查詢(xún)關(guān)鍵字的搜索排列組合,可極大地提高檢索的命中率。

由于電子元器件垂直搜索應(yīng)用面向特定的專(zhuān)業(yè)領(lǐng)域,IK Analyzer本身雖然已經(jīng)提供很豐富的常用詞匯,但對(duì)于專(zhuān)業(yè)性強(qiáng)的應(yīng)用仍然顯得捉衿見(jiàn)肘。好在IK Analyzer提供了良好的擴(kuò)展能力,我們利用配置文件輕易實(shí)現(xiàn)了用戶(hù)詞典的擴(kuò)展與定制,這樣就可以搜索到如“精密薄膜柱狀無(wú)引線(xiàn)電阻器”、“半波隨機(jī)型固體繼電器”這些專(zhuān)業(yè)詞匯了。

搜索結(jié)果呈現(xiàn)

Solr的搜索結(jié)果通常以XML格式返回,這對(duì)于普通用戶(hù)而言不合適,不過(guò)Solr提供了多種途徑(如正則表達(dá)式和文本解析)將搜索返回的結(jié)果信息進(jìn)行重新布局,以產(chǎn)生用戶(hù)易于理解的可視頁(yè)面,但都需要大量的編碼工作。在系統(tǒng)中我們利用XSLT把XML格式的結(jié)果文件轉(zhuǎn)換成HTML文件。經(jīng)過(guò)轉(zhuǎn)換后,就可以得到能看到搜索結(jié)果的頁(yè)面了。

Solr提供了層面瀏覽(facet)功能,它類(lèi)似于一種分類(lèi)篩選。運(yùn)行層面無(wú)需在Solr 中進(jìn)行配置,但可能需要按照新的方式對(duì)應(yīng)用程序內(nèi)容進(jìn)行索引。在已索引的字段中完成分層,層面對(duì)未進(jìn)行斷詞的非小寫(xiě)詞最為有效。Facet 字段通常不需要存儲(chǔ),因?yàn)榉謱用娴目傮w思想就是將可讀的值顯示給用戶(hù)。要注意的是, Solr 沒(méi)有在層面中創(chuàng)建類(lèi)別,必須由應(yīng)用程序自身在索引期間進(jìn)行添加,正如在索引應(yīng)用程序時(shí)給文檔指派關(guān)鍵字一樣。如果存在層面字段,Solr 就提供了查明這些層面及其計(jì)數(shù)的邏輯。

另外,為了在搜索結(jié)果中取得最匹配的一段文本并突出顯示出來(lái),有必要對(duì)搜索結(jié)果進(jìn)行高亮顯示。高亮顯示可修改配置文件實(shí)現(xiàn)。該配置中包括了高亮文本時(shí)使用的前綴和后綴(通常在此指定突出顯示文本的字體、字號(hào)、顏色或其他風(fēng)格)。

如果搜索結(jié)果較多還需要分頁(yè),但我們不希望自行編寫(xiě)復(fù)雜的代碼實(shí)現(xiàn)分頁(yè)。我們?cè)谙到y(tǒng)中使用了一個(gè)開(kāi)源的分頁(yè)插件,專(zhuān)門(mén)為Solr量身定制,由它對(duì) Solr 的搜索結(jié)果進(jìn)行分頁(yè)處理。

實(shí)際上,Solr的功能遠(yuǎn)不止以上這些,還有很多通過(guò)簡(jiǎn)單配置和少量修改即可實(shí)現(xiàn)的搜索功能有待研究開(kāi)發(fā)。目前,我們圍繞以Solr為主體的探索以及各項(xiàng)功能的實(shí)現(xiàn)仍在繼續(xù),力求在保證系統(tǒng)功能與性能的前提下,充分利用開(kāi)源軟件的優(yōu)勢(shì),降低開(kāi)發(fā)成本。

圖注:電子元器件垂直搜索引擎系統(tǒng)結(jié)構(gòu)圖

(作者單位:董婭為電子工業(yè)出版社、周峻松為工業(yè)和信息化部電子科學(xué)技術(shù)情報(bào)研究所)

發(fā)布:2007-04-21 11:07    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:

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

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