• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于solr的汽車數(shù)據(jù)檢索組件的設(shè)計與實現(xiàn)

      2017-11-15 21:23:01陳辰唐蘭文張超
      電腦知識與技術(shù) 2017年28期

      陳辰+唐蘭文+張超

      摘要:隨著信息化的高速發(fā)展,汽車業(yè)與信息技術(shù)充分融合為一體。伴隨著汽車業(yè)的快速發(fā)展,汽車數(shù)據(jù)也呈現(xiàn)爆炸式的增長。汽車數(shù)據(jù)的檢索是汽車信息化最重要的部分,而對于汽車數(shù)據(jù)的檢索來說如何在海量的汽車數(shù)據(jù)中快速、精準(zhǔn)地查找到需要的數(shù)據(jù),是評價其功能的重要指標(biāo),也是一個重要的研究問題。該文針對該問題,對solr搜索框架和Jcseg中文分詞器進行了研究,并結(jié)合JAVA設(shè)計封裝成可重用的組件,從而提高對汽車數(shù)據(jù)的檢索速度。

      關(guān)鍵詞:快速搜索;Solr;Jcseg;中文分詞

      中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2017)28-0012-03

      當(dāng)今是信息化時代,更是大數(shù)據(jù)時代,信息的增長呈現(xiàn)出爆炸式態(tài)勢。而伴隨著汽車業(yè)的高速發(fā)展,汽車業(yè)相關(guān)技術(shù)和材料也在飛快的更新?lián)Q代,由此產(chǎn)生的汽車相關(guān)數(shù)據(jù)也越來越龐大。如此龐大的與汽車相關(guān)的數(shù)據(jù)信息的聚合匯聚,產(chǎn)生了海量復(fù)雜的信息。而龐大且雜亂的信息量導(dǎo)致獲取和整理有效信息的難度和復(fù)雜度的大大增加,而垃圾信息的獲取概率也隨之增大。于是,人們開始思考如何精準(zhǔn)且快速地獲取有用信息,這就造成了對應(yīng)的搜索技術(shù)與工具的應(yīng)運而生。通用的搜索技術(shù)有數(shù)據(jù)庫技術(shù)和搜索引擎技術(shù)。數(shù)據(jù)庫技術(shù)在傳統(tǒng)的信息系統(tǒng)中搜索性能表現(xiàn)良好,但是涉及大數(shù)據(jù)量的情況,表現(xiàn)就有點差強人意。而且使用方式比較單一。而以搜索引擎技術(shù)而生成的作為專門的信息搜索工具的搜索引擎,可以幫助用戶盡可能快速且精確地從龐大的信息量中檢索整理出符合條件的信息。搜索引擎的出現(xiàn)符合時代的潮流,因此,作為朝陽產(chǎn)業(yè)的搜索引擎從其誕生至今,雖然僅僅只經(jīng)理了10多年的時間,卻取得了異常迅速的發(fā)展。

      搜索引擎在發(fā)展的過程中經(jīng)歷了許多具有里程碑意義的歷史事件,它們一步步的奠定了搜索引擎在今天的地位。

      搜索引擎的發(fā)展也是一步步由稚嫩走向成熟的:初始時,麥吉爾大學(xué)的一位學(xué)生在1990年發(fā)明了搜索引擎的雛形“Archie”,而其只是一個可以搜索的文件名列表,列表內(nèi)容由FTP文件名組成,查詢時用戶輸入精確的文件名,“Archie”會返回FTP站點,用戶可以通過該站點來獲得對應(yīng)的文件。在1993年Martin Koster基于“Archie”發(fā)明了Archie的HTTP版本的搜索引擎ALIWEB,ALIWEB的功能類似Yahoo!,可以通過主動提交信息來建立鏈接索引。同年,用于分析字詞關(guān)系的Excite被斯坦福大學(xué)的學(xué)生所發(fā)明,Excite能夠?qū)ヂ?lián)網(wǎng)上信息進行更有效的搜索,達到了更好的搜索的效果。而經(jīng)過四年的積蓄與發(fā)展,卡耐基梅隆大學(xué)的Michael Mauldin于1997年發(fā)明了搜索引擎Lycos,Lycos提供相關(guān)度排序,前綴匹配和字符相近限制搜索,并且第一次在索引程序中接入了spider程序的方法和使用了網(wǎng)頁自動摘要的方法。而集成搜索、多語言支持、用戶界面等功能于一體的Google于1998年誕生,其為搜索引擎帶來了技術(shù)革新。

      值得一提的是,相較于國外,國內(nèi)對搜索引擎的研究起步較晚,但是也取得了一定的成就。搜索引擎分類眾多,但是基本思想?yún)s是一致的。要做的首先都是對目標(biāo)信息進行搜集,然后按照各自集成的方法對搜集到的信息進行分析和處理,并按照一定的數(shù)據(jù)結(jié)構(gòu)將分析后的信息數(shù)據(jù)保存下來,最后,用戶從這些被保存的信息數(shù)據(jù)中檢索到有用的信息。由于大型商業(yè)搜索引擎只有少數(shù)人可以接觸到,開源搜索引擎應(yīng)運而生。在開源搜索引擎中最流行的產(chǎn)品應(yīng)當(dāng)是來自于Lucene家族的,很多知名的搜索引擎都是該家族以Lucene庫為基礎(chǔ)派生出的。而Solr就是在Lucene基礎(chǔ)之上實現(xiàn)的一個開源的搜索引擎。開發(fā)者可以通過其對應(yīng)的配置文件,對Solr搜索引擎進行功能配置,從而實現(xiàn)強大的搜索功能,而且solr搜索引擎的查詢和索引的效率都是極高的,因此, Solr搜索引擎是大多數(shù)開發(fā)者的首選。

      1 技術(shù)簡介

      1.1 Lucene

      Lucene是一個開源的全文檢索工具包,同時是Apache軟件基金會Jakarta下的一個子項目。不幸的是,Lucene僅僅提供了構(gòu)建檢索工具所需要的基礎(chǔ)架構(gòu),而不是一個完整的搜索引擎,但是開發(fā)者可以利用Lucene的基礎(chǔ)架構(gòu)結(jié)合自己的思路快速地開發(fā)出符合自己想法的搜索引擎。Lucene于2001年被捐獻給Apache,其作者Doug Cutting,而其本身就是一位在全文檢索方面資深的專家。Lucene經(jīng)過多年的發(fā)展和完善,逐步成為了當(dāng)下最流行的開源的java全文檢索工具包,現(xiàn)在Lucene的最新版本為6.6.0版本。值得一提的是,eclipse就使用了Lucene作為全文檢索工具來檢索幫助文檔。

      1.2 Solr

      Solr全稱Search On Lucene Replication,是一個開源的全文搜索服務(wù)器。它是基于Apache Lucene并對其進行了擴展,從而實現(xiàn)的。它不僅提供了比Lucene更為豐富的查詢語言,還提供了一個完善的功能管理界面。Solr基于JAVA語言開發(fā),是一個高性能、可配置、可擴展、獨立的企業(yè)級搜索應(yīng)用服務(wù)器。在Solr中,資源是以含有能唯一標(biāo)識其自身的屬性Document為對象進行存儲的,標(biāo)識其自身的屬性的默認名為id,其功能在Schema配置文件中進行描述。每個文檔都是由一系列的表示資源的一個屬性的Field所構(gòu)成。Solr對外提供的接口類似于webservice的api接口。用戶可以通過發(fā)送http請求將一定格式的XML文件提交到加載Solr搜索引擎的服務(wù)器中,此時服務(wù)器會生成與其對應(yīng)索引;當(dāng)然,用戶也可以通過Http Get操作向加載Solr搜索引擎的服務(wù)器發(fā)出查找的請求,此時服務(wù)器會返回一個以XML為格式結(jié)果。

      1.3 Jcseg

      jcseg是一個基于JAVA開發(fā)和流行的mmseg算法實現(xiàn)的中文分詞器,并且其是開源的。jcseg是一款獨立的分詞組件,并且提供了針對solr的分詞接口。Jcseg具有很強大的功能特性:由于使用mmseg算法,jcseg分詞準(zhǔn)確率高達98.41%;同時支持自定義詞庫,對于詞庫和詞庫中的內(nèi)容開發(fā)者可以很方便地進行添加/更改和刪除,除此之外,開發(fā)者還可以對詞庫分類;jcseg不僅支持同義詞匹配還可以對分詞拼音進行追加。同時jcseg整合了《現(xiàn)代漢語詞典》和cc-cedict詞典中的詞條,并且根據(jù)cc-cedict詞典和詞條的對照jcseg還為詞條標(biāo)上了拼音;jcseg支持中文分數(shù)和中文數(shù)字識別,并且自動將中文數(shù)字轉(zhuǎn)換為阿拉伯?dāng)?shù)字加入分詞結(jié)果;jcseg支持中英文混合詞的識別;有更好的英文支持,如電子郵件、網(wǎng)址等;支持自動半角/圓角、大小寫轉(zhuǎn)換;支持特殊字符(如I,II)識別,特殊數(shù)字的識別,智能中文人名識別;jcseg通過開啟一個守護線程隨時監(jiān)測詞庫更新并隨時加載。endprint

      2 系統(tǒng)架構(gòu)

      為了管理的方便性,以及將來系統(tǒng)的擴展性,該設(shè)計采取的方法盡量分離了管理結(jié)構(gòu)與普通應(yīng)用,為了達到方便管理的目的,該設(shè)計使用方法將所有管理功能都盡可能地納入同一個Web頁面下。如下圖所示,該設(shè)計有8個模塊:Solr Core API、New API、索引庫、查詢、索引更新、索引刪除、 網(wǎng)絡(luò)蜘蛛、分詞。在這8個模塊中,開發(fā)者需要自己來實現(xiàn)除了Solr API模塊以外的其他七個模塊。在下圖中不同模塊之間調(diào)用關(guān)系用箭頭表示,需要通過修改solr配置文件實現(xiàn)來實現(xiàn)的模塊用虛箭頭表示。

      2.1 分詞模塊的設(shè)計與實現(xiàn)

      在搜索引擎中分詞模塊的地位極其重要,因為搜索引擎最后的搜索結(jié)果很大程度上是由分詞的結(jié)果決定的,而在實際需求中,中文搜索是常見的功能需求。為了讓Solr搜索引擎支持檢索中文,這里需要選擇Jcseg中文分詞器。Jcseg中文分詞器和Solr的整合比較簡單,開發(fā)者只需要更改Solr的配置文件即可。首先,將Jcseg的配置文件Jcsegjcseg.properties,目錄lexicon\,以及\output下的jcseg-core-1.9.5.jar與jcseg-solr-1.9.5.jar拷貝到Solr工程的lib目錄下,這樣就做好了準(zhǔn)備工作;接著,需要修改Solr的配置文件:solr-5.5.0\server\solr\collection1\conf,并添加如下內(nèi)容:

      這樣,就定義了一個叫作show_text的類型,之后所有被定義為這個類型的字段(Field),在建立索引和查詢的時候都會使用jcseg analyzer進行分詞,包括中文。

      2.2 查詢模塊的設(shè)計與實現(xiàn)

      查詢模塊主要通過servelt技術(shù)實現(xiàn)。用戶在查詢頁面表單里輸入要查詢的關(guān)鍵詞,點擊查詢按鈕向服務(wù)器發(fā)送查詢請求,服務(wù)器收到請求后,獲得查詢參數(shù),調(diào)用Solr對外提供的HTTP接口,獲取查詢的結(jié)果對象,并將查詢結(jié)果放到頁面返回給用戶。

      2.3 管理模塊的設(shè)計與實現(xiàn)

      管理模塊簡化了Solr的添加、更新和刪除操作。主要通過servlet技術(shù)實現(xiàn),用戶在頁面上選擇要添加到索引庫的文件并上傳至服務(wù)器,服務(wù)器接受到請求后會把該文件保存在服務(wù)器的附件目錄下,然后調(diào)用Solr對外提供的索引相關(guān)的接口,創(chuàng)建索引,創(chuàng)建完索引后,就可以在搜索頁面對該資源進行搜索。更新和刪除索引執(zhí)行類似的操作即可。

      2.4 編輯配置文件

      在Solr中,主要的配置文件有3個,這三個配置文件的格式都是xml,它們分別是:schema.xml、solrconfig.xml和solr.xml。而搜索器及其相關(guān)參數(shù)使用默認值即可,因此,不需要對solrconfig做特別配置。

      配置schema.xml需要string 和text這兩個fieldtype。其中text指出在該類型對于搜索內(nèi)容進行分詞采用的是中文分詞類;field有id、url、text和title四個;id對應(yīng)string類型表示文檔的序號、url對應(yīng)string類型表示網(wǎng)頁的鏈接地址、text對應(yīng)text類型為網(wǎng)頁的內(nèi)容、title對應(yīng)text類型為網(wǎng)頁的標(biāo)題,title和text需要分詞和建立索引。Text為默認的搜索字段,建立在以上基礎(chǔ)上使用者就可以達到搜索某個網(wǎng)頁的文字信息的目的了。

      2.5 New API模塊的設(shè)計與實現(xiàn)

      New API主要是為了簡化Solr索引的操作,使用JAVA對Solr對外開放的API進行了二次封裝,在Solr原有的基礎(chǔ)之上,添加了自動生成配置文件的機制,該機制,可以在創(chuàng)建索引后,創(chuàng)建XML配置文件,并提供對外接口處理該XML配置文件,當(dāng)傳入該格式的配置文件后,能夠重復(fù)所記錄下的操作,方便索引的遷移;修改了默認創(chuàng)建的索引格式,免去了大量的冗余,方便進行索引文虎,同時,將想要被索引到的內(nèi)容統(tǒng)一放到一個字段內(nèi),統(tǒng)一管理該字段的分冊方式,方便進行全文搜索;封裝了同一個目錄下所有索引文件的增量更新,通過校驗文件的最后一次修改時間來判斷是否需要更新索引,這樣就節(jié)省了大量不必要的工作,節(jié)省了大量的時間,從而加快了更新的速度。與此同時,在用戶請求檢索數(shù)據(jù)的同時,檢查數(shù)據(jù)是否發(fā)生了修改或者刪除操作,以此來動態(tài)地維護索引,始終保持現(xiàn)有索引和檢索數(shù)據(jù)的一致性;使用了智能分詞器,并且制作了包含大量詞條的同義詞詞庫,對汽車專業(yè)的詞匯更加準(zhǔn)確,并且實現(xiàn)了中英文、漢語和拼音的映射。

      3 結(jié)論

      Solr用于解決大數(shù)據(jù)量情況下搜索速度慢的問題,同時,為了支持中文檢索功能,可以使用Jcseg分詞器,通過修改Solr的配置文件,開發(fā)者可以方便地將Jcseg中文分詞器和Solr結(jié)合起來。本設(shè)計簡化了Solr自帶的管理器創(chuàng)建索引的方式,同時實現(xiàn)了自動生成配置文件的機制,在創(chuàng)建索引之后,可以創(chuàng)建XML格式的配置文件,同時提供了讀取配置文件的接口;通過Solrj實現(xiàn)了同一目錄下所有索引文件的批量更新,通過判定文件的最后修改時間來決定是否更新索引,從而節(jié)省了大量不必要的工作;制作了包含大量詞條的同義詞詞庫,因此對汽車專業(yè)詞匯的分詞更加準(zhǔn)確,并且實現(xiàn)了中英文、漢字拼音之間的相互關(guān)聯(lián)。但是由于時間、精力、知識水平的制約,本設(shè)計也有需要提高的地方,比如未對搜索引擎的性能做改進等。

      參考文獻:

      [1] 李曉明,閆宏飛,王繼民.搜索引擎原理、技術(shù)與系統(tǒng)[M].北京:科學(xué)出版社,2005.

      [2] Lucene官方網(wǎng)站.https://lucene.apache.org/

      [3] solr官方網(wǎng)站.http://lucene.apache.org/solr/

      [4] jcseg官方網(wǎng)站.https://sourceforge.net/projects/jcseg/

      [5] SolrWiki.http://wiki.apache.org/solr/

      [6] STL China 搜索引擎技術(shù)中心.http://www.stlchina.org/twiki/bin/view.pl/Main/SearchEngine

      [7] 謝新洲.網(wǎng)絡(luò)信息檢索技術(shù)與案例[M].北京:北京圖書館出版社,2005.

      [8] 喻平,譚鳴,夏小云.基于Lucene技術(shù)的垂直搜索引擎的研究[J].軟件導(dǎo)刊,2008.

      [9] 中國互聯(lián)網(wǎng)絡(luò)信息中心 http://www.cnnic.net.cn

      [10] 汪文勇.基于Lucene的Web站內(nèi)信息搜索系統(tǒng)[D].電子科技大學(xué),2005.

      [11] Heritrix官方網(wǎng)站 http://crawler.archive.org/

      [12] 苗奪謙,衛(wèi)志華.中文文本信息處理的原理與應(yīng)用[M].北京:清華大學(xué)出版社,2007.

      [13] 葛微,羅圣美,周文輝.HiBase:一種基于分層式索引的高效HBase 查詢技術(shù)與系統(tǒng)[J].計算機學(xué)報,2015,38(35):1-15.endprint

      西乌珠穆沁旗| 遂溪县| 西和县| 伊金霍洛旗| 洛扎县| 鄂州市| 大姚县| 浙江省| 沾益县| 杭锦旗| 南城县| 滨州市| 嘉祥县| 济阳县| 化州市| 九江市| 吉安县| 获嘉县| 东方市| 潼南县| 绥江县| 彰武县| 镇平县| 东平县| 桓台县| 忻州市| 东丽区| 留坝县| 通江县| 光山县| 厦门市| 荆门市| 和政县| 柳州市| 景洪市| 军事| 博罗县| 武川县| 蕉岭县| 华坪县| 双鸭山市|