劉靜
摘要:在對Lcuene技術(shù)的深入分析的基礎上,設計和實現(xiàn)了基于Lucene的期刊全文檢索平臺。主要包括系統(tǒng)設計思路,開發(fā)平臺,數(shù)據(jù)庫的建設,算法,索引器、檢索器和檢索平臺的實現(xiàn)。
關(guān)鍵詞:期刊全文檢索;Lucene
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)14-3334-04
1 期刊全文檢索的設計思路
1.1 Lucene對期刊全文檢索的支持
期刊的特點:1)期刊語種繁多,有英文、中文、德文等。2)期刊格式較多,以pdf、html為主。Lucene對于數(shù)據(jù)源沒有規(guī)定固定的格式,只提供了一個通過的Document文檔對象來獲取索引,因此可將數(shù)據(jù)庫、WORD、PDF等格式文檔作為數(shù)據(jù)源,在Lucene內(nèi)部為不同格式數(shù)據(jù)源提供了解析轉(zhuǎn)換器,將源數(shù)據(jù)構(gòu)造為文檔對象以便進行索引。在Java Lucene框架中對于由不同語言編寫的文檔,提供了抽象的語言分析器接口,方便開發(fā)者自行定制和擴展,框架本身提供了2個較通用的SimpleAnalyser和StandardAnalyser接口[1]。對于中文分詞當前使用較多的是IKAnalyse分詞器、庖丁解牛分詞器等。
1.2 系統(tǒng)的結(jié)構(gòu)設計
系統(tǒng)在處理文獻查詢時,主要分為以下三步,分別為:
1)系統(tǒng)首先搜索文獻所在目錄,遍歷文件并判斷文件后綴是否為PDF和HTML,若符合要求則加載文件并解析,提取出文件中文本信息,創(chuàng)建文檔Document對象,添加為索引文件。
2)獲取用戶的查詢關(guān)鍵詞,創(chuàng)建查詢Query對象,在第1)步生的索引文件中匹配查找,結(jié)果按相關(guān)度進行排序,并返回一個查詢結(jié)果文檔集合。
3)根據(jù)第2)步查詢文檔集合,在文獻題錄庫中查詢對應的文獻信息,在用戶界面上進行展示,對查詢關(guān)鍵詞進行高亮顯示。系統(tǒng)結(jié)構(gòu)如圖1所示。
系統(tǒng)功能模塊包括:
1)期刊檢索平臺模塊,負責把用戶的檢索詞傳給檢索器,并對查詢結(jié)果進行處理,從期刊題錄庫中提取顯示信息。
2)索引器模塊,負責對本地的期刊全文進行索引,生成索引文件。
3)檢索器模塊,負責根據(jù)用戶的查詢詞對期刊索引進行搜索,并把結(jié)果文檔的id集合返回。
4)期刊題錄庫模塊,負責本地期刊的信息的描述。
2 期刊全文檢索的實現(xiàn)
期刊全文檢查平臺的實現(xiàn)主要包括對期刊數(shù)據(jù)庫的搭建和查詢檢索平臺開發(fā)兩部分。前者是文獻檢查的基礎,數(shù)據(jù)庫的建設與數(shù)據(jù)的完善能夠提高檢索的準確率;后者則能夠向用戶提供全文檢索功能,提高檢索效率。
系統(tǒng)開發(fā)平臺選用成熟的企業(yè)級開發(fā)技術(shù)—JavaEE技術(shù),結(jié)合成熟的Lucene3.0框架和IKAnalyser3.0中方分詞器,數(shù)據(jù)庫采用SQLServer2005。此開發(fā)框架具有成熟、穩(wěn)定、開發(fā)快捷、便于維護和擴展等特性,可方便部署在Windows、Linux等多個平臺,為期刊全文檢索系統(tǒng)的開發(fā)提供了堅實的技術(shù)基礎。
2.1 期刊數(shù)據(jù)庫的建設
當前數(shù)據(jù)庫的發(fā)展主要以關(guān)系型數(shù)據(jù)庫為主,期刊數(shù)據(jù)庫同樣選擇關(guān)系型存儲,數(shù)據(jù)庫中主要包括期刊、論文等數(shù)據(jù)表和全文數(shù)據(jù)兩部分。期刊信息包括了期刊中英文名稱、期刊介紹、所屬學科、出版者、ISBN、網(wǎng)址、期數(shù)等信息。論文信息則為文獻的記錄,分別以文獻文章信息article表、關(guān)鍵詞信息keyword表和作者信息author表方式存儲,分別保存了文獻的題名、關(guān)鍵詞、作者、摘要、出版情況、存儲格式等信息,三表間互為主外鍵關(guān)系。全文數(shù)據(jù)采用文件方式進行存儲,并且文件在格式上保留上原有格式,如HTML格式、PDF格式等。相關(guān)表設計如表1至表5所示。
2.2 索引器的實現(xiàn)
Lucene的索引過程包括三個階段:將數(shù)據(jù)轉(zhuǎn)化為文本、分析文本、將分析過的文本保存到索引庫中。使用Lucene索引期刊過程如如圖2所示。
如圖2可知,實現(xiàn)索引器中主要任務是創(chuàng)建索引文檔。系統(tǒng)在實現(xiàn)時設計了文檔Documents基類,用于構(gòu)建Lucene中的索引文檔,不同格式文件需重寫Documents中的GetContent方法,即解析不同文件,使之成為純文本。
系統(tǒng)中設計基類主要是應用了面向?qū)ο笏枷胫写a復用的核心思想,在父類中可封裝一些通用的操作,同時子類可覆蓋父類的實現(xiàn),以便進行功能的擴充等。
生成索引流程圖如圖3所示。
2.3 檢索器和檢索平臺的實現(xiàn)
檢索器的功能是在被索引文件中進行查找,然后返回匹配文檔的ID,通常這些ID保存在內(nèi)存中,以提高檢索速度。檢查平臺是與用戶交互的UI部分,主要功能是獲取用戶輸入的關(guān)鍵詞,并將結(jié)果以分頁的形式展示和對查詢結(jié)果中的關(guān)鍵詞進行高高顯示。檢索過程如圖4所示。
從圖中可以看出Lucene實現(xiàn)搜索需處理用戶輸入的關(guān)鍵詞,構(gòu)造一個Query實例,并根據(jù)Query類型查詢索引文件。
1)搜索器的實現(xiàn)
為了提高檢索的效率,本系統(tǒng)對查詢結(jié)果相關(guān)度的排序做了設定,系統(tǒng)中設置多個查詢表達式,并為每個表達式設置權(quán)值,以便讓包括較多檢索詞的文獻排在查詢結(jié)果的前方。如設檢查詞為n個,系統(tǒng)自動創(chuàng)建2n-1個查詢表達式,查詢表達式的權(quán)值則依次設置為[2n-1,1]依次遞減,最后在計算查詢結(jié)果時將查詢表達式進行組合運算。
2)檢索平臺的實現(xiàn)
系統(tǒng)選用企業(yè)級JavaEE技術(shù)進行開發(fā),JavaEE技術(shù)提供了包括JSP/Servlet、EJB、JPA等技術(shù),且在JavaEE領域存在多種開源的框架技術(shù),方便開發(fā)者進行擴充和定制,使用JavaEE開發(fā)的系統(tǒng)具有跨平臺、方便移植等特點。系統(tǒng)在技術(shù)選型上進行了大量論證,最終采用當前業(yè)界使用最為廣泛的輕量級JavaEE開發(fā)框架—Spring框架和MyBatis框架兩者結(jié)合。
Spring框架[3]是一種依賴注入IoC思想實現(xiàn)框架,其提供了在運行時動態(tài)管理對象間依賴關(guān)系的思想,將對象間的依賴關(guān)系進行反轉(zhuǎn),開發(fā)者在編程時不需將依賴關(guān)系硬編碼至源碼中,而是通過在配置文件中進行聲明,大大提高了系統(tǒng)的可擴展性和可維護性。同時Spring中還包括了SpringMVC框架,以簡化表示層代碼開發(fā),從Spring3.0以后開發(fā)者可選用基于注解的方式進行開發(fā),提高了開發(fā)效率,方便開發(fā)Restful應用。MyBatis框架用于開發(fā)系統(tǒng)數(shù)據(jù)訪問層,其核心思想是ORM(對象關(guān)系映射),依據(jù)此思想開發(fā)者在編寫數(shù)據(jù)訪問代碼時完全按照面向?qū)ο笏枷脒M行開發(fā),以對象為單位操作數(shù)據(jù)表中數(shù)據(jù)。在用戶UI界面層,系統(tǒng)采用AJAX方式,選用EasyUI作為AJAX Js庫,用戶在使用時頁面不需跳轉(zhuǎn)刷新即可從服務端獲取數(shù)據(jù),提高了用戶體驗。
參考文獻:
[1] 王學松.Lucene+nutch搜索引擎開發(fā)[M].北京:人民郵電出版社,2008.
[2] 吳眾欣,沈家立.Lucene分析與應用[M].北京:機械工業(yè)出版社,2008.
[3] 陳雄華,林開雄.Spring3.x企業(yè)應用開發(fā)實戰(zhàn)[M].北京:電子工業(yè)出版社,2012.endprint
摘要:在對Lcuene技術(shù)的深入分析的基礎上,設計和實現(xiàn)了基于Lucene的期刊全文檢索平臺。主要包括系統(tǒng)設計思路,開發(fā)平臺,數(shù)據(jù)庫的建設,算法,索引器、檢索器和檢索平臺的實現(xiàn)。
關(guān)鍵詞:期刊全文檢索;Lucene
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)14-3334-04
1 期刊全文檢索的設計思路
1.1 Lucene對期刊全文檢索的支持
期刊的特點:1)期刊語種繁多,有英文、中文、德文等。2)期刊格式較多,以pdf、html為主。Lucene對于數(shù)據(jù)源沒有規(guī)定固定的格式,只提供了一個通過的Document文檔對象來獲取索引,因此可將數(shù)據(jù)庫、WORD、PDF等格式文檔作為數(shù)據(jù)源,在Lucene內(nèi)部為不同格式數(shù)據(jù)源提供了解析轉(zhuǎn)換器,將源數(shù)據(jù)構(gòu)造為文檔對象以便進行索引。在Java Lucene框架中對于由不同語言編寫的文檔,提供了抽象的語言分析器接口,方便開發(fā)者自行定制和擴展,框架本身提供了2個較通用的SimpleAnalyser和StandardAnalyser接口[1]。對于中文分詞當前使用較多的是IKAnalyse分詞器、庖丁解牛分詞器等。
1.2 系統(tǒng)的結(jié)構(gòu)設計
系統(tǒng)在處理文獻查詢時,主要分為以下三步,分別為:
1)系統(tǒng)首先搜索文獻所在目錄,遍歷文件并判斷文件后綴是否為PDF和HTML,若符合要求則加載文件并解析,提取出文件中文本信息,創(chuàng)建文檔Document對象,添加為索引文件。
2)獲取用戶的查詢關(guān)鍵詞,創(chuàng)建查詢Query對象,在第1)步生的索引文件中匹配查找,結(jié)果按相關(guān)度進行排序,并返回一個查詢結(jié)果文檔集合。
3)根據(jù)第2)步查詢文檔集合,在文獻題錄庫中查詢對應的文獻信息,在用戶界面上進行展示,對查詢關(guān)鍵詞進行高亮顯示。系統(tǒng)結(jié)構(gòu)如圖1所示。
系統(tǒng)功能模塊包括:
1)期刊檢索平臺模塊,負責把用戶的檢索詞傳給檢索器,并對查詢結(jié)果進行處理,從期刊題錄庫中提取顯示信息。
2)索引器模塊,負責對本地的期刊全文進行索引,生成索引文件。
3)檢索器模塊,負責根據(jù)用戶的查詢詞對期刊索引進行搜索,并把結(jié)果文檔的id集合返回。
4)期刊題錄庫模塊,負責本地期刊的信息的描述。
2 期刊全文檢索的實現(xiàn)
期刊全文檢查平臺的實現(xiàn)主要包括對期刊數(shù)據(jù)庫的搭建和查詢檢索平臺開發(fā)兩部分。前者是文獻檢查的基礎,數(shù)據(jù)庫的建設與數(shù)據(jù)的完善能夠提高檢索的準確率;后者則能夠向用戶提供全文檢索功能,提高檢索效率。
系統(tǒng)開發(fā)平臺選用成熟的企業(yè)級開發(fā)技術(shù)—JavaEE技術(shù),結(jié)合成熟的Lucene3.0框架和IKAnalyser3.0中方分詞器,數(shù)據(jù)庫采用SQLServer2005。此開發(fā)框架具有成熟、穩(wěn)定、開發(fā)快捷、便于維護和擴展等特性,可方便部署在Windows、Linux等多個平臺,為期刊全文檢索系統(tǒng)的開發(fā)提供了堅實的技術(shù)基礎。
2.1 期刊數(shù)據(jù)庫的建設
當前數(shù)據(jù)庫的發(fā)展主要以關(guān)系型數(shù)據(jù)庫為主,期刊數(shù)據(jù)庫同樣選擇關(guān)系型存儲,數(shù)據(jù)庫中主要包括期刊、論文等數(shù)據(jù)表和全文數(shù)據(jù)兩部分。期刊信息包括了期刊中英文名稱、期刊介紹、所屬學科、出版者、ISBN、網(wǎng)址、期數(shù)等信息。論文信息則為文獻的記錄,分別以文獻文章信息article表、關(guān)鍵詞信息keyword表和作者信息author表方式存儲,分別保存了文獻的題名、關(guān)鍵詞、作者、摘要、出版情況、存儲格式等信息,三表間互為主外鍵關(guān)系。全文數(shù)據(jù)采用文件方式進行存儲,并且文件在格式上保留上原有格式,如HTML格式、PDF格式等。相關(guān)表設計如表1至表5所示。
2.2 索引器的實現(xiàn)
Lucene的索引過程包括三個階段:將數(shù)據(jù)轉(zhuǎn)化為文本、分析文本、將分析過的文本保存到索引庫中。使用Lucene索引期刊過程如如圖2所示。
如圖2可知,實現(xiàn)索引器中主要任務是創(chuàng)建索引文檔。系統(tǒng)在實現(xiàn)時設計了文檔Documents基類,用于構(gòu)建Lucene中的索引文檔,不同格式文件需重寫Documents中的GetContent方法,即解析不同文件,使之成為純文本。
系統(tǒng)中設計基類主要是應用了面向?qū)ο笏枷胫写a復用的核心思想,在父類中可封裝一些通用的操作,同時子類可覆蓋父類的實現(xiàn),以便進行功能的擴充等。
生成索引流程圖如圖3所示。
2.3 檢索器和檢索平臺的實現(xiàn)
檢索器的功能是在被索引文件中進行查找,然后返回匹配文檔的ID,通常這些ID保存在內(nèi)存中,以提高檢索速度。檢查平臺是與用戶交互的UI部分,主要功能是獲取用戶輸入的關(guān)鍵詞,并將結(jié)果以分頁的形式展示和對查詢結(jié)果中的關(guān)鍵詞進行高高顯示。檢索過程如圖4所示。
從圖中可以看出Lucene實現(xiàn)搜索需處理用戶輸入的關(guān)鍵詞,構(gòu)造一個Query實例,并根據(jù)Query類型查詢索引文件。
1)搜索器的實現(xiàn)
為了提高檢索的效率,本系統(tǒng)對查詢結(jié)果相關(guān)度的排序做了設定,系統(tǒng)中設置多個查詢表達式,并為每個表達式設置權(quán)值,以便讓包括較多檢索詞的文獻排在查詢結(jié)果的前方。如設檢查詞為n個,系統(tǒng)自動創(chuàng)建2n-1個查詢表達式,查詢表達式的權(quán)值則依次設置為[2n-1,1]依次遞減,最后在計算查詢結(jié)果時將查詢表達式進行組合運算。
2)檢索平臺的實現(xiàn)
系統(tǒng)選用企業(yè)級JavaEE技術(shù)進行開發(fā),JavaEE技術(shù)提供了包括JSP/Servlet、EJB、JPA等技術(shù),且在JavaEE領域存在多種開源的框架技術(shù),方便開發(fā)者進行擴充和定制,使用JavaEE開發(fā)的系統(tǒng)具有跨平臺、方便移植等特點。系統(tǒng)在技術(shù)選型上進行了大量論證,最終采用當前業(yè)界使用最為廣泛的輕量級JavaEE開發(fā)框架—Spring框架和MyBatis框架兩者結(jié)合。
Spring框架[3]是一種依賴注入IoC思想實現(xiàn)框架,其提供了在運行時動態(tài)管理對象間依賴關(guān)系的思想,將對象間的依賴關(guān)系進行反轉(zhuǎn),開發(fā)者在編程時不需將依賴關(guān)系硬編碼至源碼中,而是通過在配置文件中進行聲明,大大提高了系統(tǒng)的可擴展性和可維護性。同時Spring中還包括了SpringMVC框架,以簡化表示層代碼開發(fā),從Spring3.0以后開發(fā)者可選用基于注解的方式進行開發(fā),提高了開發(fā)效率,方便開發(fā)Restful應用。MyBatis框架用于開發(fā)系統(tǒng)數(shù)據(jù)訪問層,其核心思想是ORM(對象關(guān)系映射),依據(jù)此思想開發(fā)者在編寫數(shù)據(jù)訪問代碼時完全按照面向?qū)ο笏枷脒M行開發(fā),以對象為單位操作數(shù)據(jù)表中數(shù)據(jù)。在用戶UI界面層,系統(tǒng)采用AJAX方式,選用EasyUI作為AJAX Js庫,用戶在使用時頁面不需跳轉(zhuǎn)刷新即可從服務端獲取數(shù)據(jù),提高了用戶體驗。
參考文獻:
[1] 王學松.Lucene+nutch搜索引擎開發(fā)[M].北京:人民郵電出版社,2008.
[2] 吳眾欣,沈家立.Lucene分析與應用[M].北京:機械工業(yè)出版社,2008.
[3] 陳雄華,林開雄.Spring3.x企業(yè)應用開發(fā)實戰(zhàn)[M].北京:電子工業(yè)出版社,2012.endprint
摘要:在對Lcuene技術(shù)的深入分析的基礎上,設計和實現(xiàn)了基于Lucene的期刊全文檢索平臺。主要包括系統(tǒng)設計思路,開發(fā)平臺,數(shù)據(jù)庫的建設,算法,索引器、檢索器和檢索平臺的實現(xiàn)。
關(guān)鍵詞:期刊全文檢索;Lucene
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)14-3334-04
1 期刊全文檢索的設計思路
1.1 Lucene對期刊全文檢索的支持
期刊的特點:1)期刊語種繁多,有英文、中文、德文等。2)期刊格式較多,以pdf、html為主。Lucene對于數(shù)據(jù)源沒有規(guī)定固定的格式,只提供了一個通過的Document文檔對象來獲取索引,因此可將數(shù)據(jù)庫、WORD、PDF等格式文檔作為數(shù)據(jù)源,在Lucene內(nèi)部為不同格式數(shù)據(jù)源提供了解析轉(zhuǎn)換器,將源數(shù)據(jù)構(gòu)造為文檔對象以便進行索引。在Java Lucene框架中對于由不同語言編寫的文檔,提供了抽象的語言分析器接口,方便開發(fā)者自行定制和擴展,框架本身提供了2個較通用的SimpleAnalyser和StandardAnalyser接口[1]。對于中文分詞當前使用較多的是IKAnalyse分詞器、庖丁解牛分詞器等。
1.2 系統(tǒng)的結(jié)構(gòu)設計
系統(tǒng)在處理文獻查詢時,主要分為以下三步,分別為:
1)系統(tǒng)首先搜索文獻所在目錄,遍歷文件并判斷文件后綴是否為PDF和HTML,若符合要求則加載文件并解析,提取出文件中文本信息,創(chuàng)建文檔Document對象,添加為索引文件。
2)獲取用戶的查詢關(guān)鍵詞,創(chuàng)建查詢Query對象,在第1)步生的索引文件中匹配查找,結(jié)果按相關(guān)度進行排序,并返回一個查詢結(jié)果文檔集合。
3)根據(jù)第2)步查詢文檔集合,在文獻題錄庫中查詢對應的文獻信息,在用戶界面上進行展示,對查詢關(guān)鍵詞進行高亮顯示。系統(tǒng)結(jié)構(gòu)如圖1所示。
系統(tǒng)功能模塊包括:
1)期刊檢索平臺模塊,負責把用戶的檢索詞傳給檢索器,并對查詢結(jié)果進行處理,從期刊題錄庫中提取顯示信息。
2)索引器模塊,負責對本地的期刊全文進行索引,生成索引文件。
3)檢索器模塊,負責根據(jù)用戶的查詢詞對期刊索引進行搜索,并把結(jié)果文檔的id集合返回。
4)期刊題錄庫模塊,負責本地期刊的信息的描述。
2 期刊全文檢索的實現(xiàn)
期刊全文檢查平臺的實現(xiàn)主要包括對期刊數(shù)據(jù)庫的搭建和查詢檢索平臺開發(fā)兩部分。前者是文獻檢查的基礎,數(shù)據(jù)庫的建設與數(shù)據(jù)的完善能夠提高檢索的準確率;后者則能夠向用戶提供全文檢索功能,提高檢索效率。
系統(tǒng)開發(fā)平臺選用成熟的企業(yè)級開發(fā)技術(shù)—JavaEE技術(shù),結(jié)合成熟的Lucene3.0框架和IKAnalyser3.0中方分詞器,數(shù)據(jù)庫采用SQLServer2005。此開發(fā)框架具有成熟、穩(wěn)定、開發(fā)快捷、便于維護和擴展等特性,可方便部署在Windows、Linux等多個平臺,為期刊全文檢索系統(tǒng)的開發(fā)提供了堅實的技術(shù)基礎。
2.1 期刊數(shù)據(jù)庫的建設
當前數(shù)據(jù)庫的發(fā)展主要以關(guān)系型數(shù)據(jù)庫為主,期刊數(shù)據(jù)庫同樣選擇關(guān)系型存儲,數(shù)據(jù)庫中主要包括期刊、論文等數(shù)據(jù)表和全文數(shù)據(jù)兩部分。期刊信息包括了期刊中英文名稱、期刊介紹、所屬學科、出版者、ISBN、網(wǎng)址、期數(shù)等信息。論文信息則為文獻的記錄,分別以文獻文章信息article表、關(guān)鍵詞信息keyword表和作者信息author表方式存儲,分別保存了文獻的題名、關(guān)鍵詞、作者、摘要、出版情況、存儲格式等信息,三表間互為主外鍵關(guān)系。全文數(shù)據(jù)采用文件方式進行存儲,并且文件在格式上保留上原有格式,如HTML格式、PDF格式等。相關(guān)表設計如表1至表5所示。
2.2 索引器的實現(xiàn)
Lucene的索引過程包括三個階段:將數(shù)據(jù)轉(zhuǎn)化為文本、分析文本、將分析過的文本保存到索引庫中。使用Lucene索引期刊過程如如圖2所示。
如圖2可知,實現(xiàn)索引器中主要任務是創(chuàng)建索引文檔。系統(tǒng)在實現(xiàn)時設計了文檔Documents基類,用于構(gòu)建Lucene中的索引文檔,不同格式文件需重寫Documents中的GetContent方法,即解析不同文件,使之成為純文本。
系統(tǒng)中設計基類主要是應用了面向?qū)ο笏枷胫写a復用的核心思想,在父類中可封裝一些通用的操作,同時子類可覆蓋父類的實現(xiàn),以便進行功能的擴充等。
生成索引流程圖如圖3所示。
2.3 檢索器和檢索平臺的實現(xiàn)
檢索器的功能是在被索引文件中進行查找,然后返回匹配文檔的ID,通常這些ID保存在內(nèi)存中,以提高檢索速度。檢查平臺是與用戶交互的UI部分,主要功能是獲取用戶輸入的關(guān)鍵詞,并將結(jié)果以分頁的形式展示和對查詢結(jié)果中的關(guān)鍵詞進行高高顯示。檢索過程如圖4所示。
從圖中可以看出Lucene實現(xiàn)搜索需處理用戶輸入的關(guān)鍵詞,構(gòu)造一個Query實例,并根據(jù)Query類型查詢索引文件。
1)搜索器的實現(xiàn)
為了提高檢索的效率,本系統(tǒng)對查詢結(jié)果相關(guān)度的排序做了設定,系統(tǒng)中設置多個查詢表達式,并為每個表達式設置權(quán)值,以便讓包括較多檢索詞的文獻排在查詢結(jié)果的前方。如設檢查詞為n個,系統(tǒng)自動創(chuàng)建2n-1個查詢表達式,查詢表達式的權(quán)值則依次設置為[2n-1,1]依次遞減,最后在計算查詢結(jié)果時將查詢表達式進行組合運算。
2)檢索平臺的實現(xiàn)
系統(tǒng)選用企業(yè)級JavaEE技術(shù)進行開發(fā),JavaEE技術(shù)提供了包括JSP/Servlet、EJB、JPA等技術(shù),且在JavaEE領域存在多種開源的框架技術(shù),方便開發(fā)者進行擴充和定制,使用JavaEE開發(fā)的系統(tǒng)具有跨平臺、方便移植等特點。系統(tǒng)在技術(shù)選型上進行了大量論證,最終采用當前業(yè)界使用最為廣泛的輕量級JavaEE開發(fā)框架—Spring框架和MyBatis框架兩者結(jié)合。
Spring框架[3]是一種依賴注入IoC思想實現(xiàn)框架,其提供了在運行時動態(tài)管理對象間依賴關(guān)系的思想,將對象間的依賴關(guān)系進行反轉(zhuǎn),開發(fā)者在編程時不需將依賴關(guān)系硬編碼至源碼中,而是通過在配置文件中進行聲明,大大提高了系統(tǒng)的可擴展性和可維護性。同時Spring中還包括了SpringMVC框架,以簡化表示層代碼開發(fā),從Spring3.0以后開發(fā)者可選用基于注解的方式進行開發(fā),提高了開發(fā)效率,方便開發(fā)Restful應用。MyBatis框架用于開發(fā)系統(tǒng)數(shù)據(jù)訪問層,其核心思想是ORM(對象關(guān)系映射),依據(jù)此思想開發(fā)者在編寫數(shù)據(jù)訪問代碼時完全按照面向?qū)ο笏枷脒M行開發(fā),以對象為單位操作數(shù)據(jù)表中數(shù)據(jù)。在用戶UI界面層,系統(tǒng)采用AJAX方式,選用EasyUI作為AJAX Js庫,用戶在使用時頁面不需跳轉(zhuǎn)刷新即可從服務端獲取數(shù)據(jù),提高了用戶體驗。
參考文獻:
[1] 王學松.Lucene+nutch搜索引擎開發(fā)[M].北京:人民郵電出版社,2008.
[2] 吳眾欣,沈家立.Lucene分析與應用[M].北京:機械工業(yè)出版社,2008.
[3] 陳雄華,林開雄.Spring3.x企業(yè)應用開發(fā)實戰(zhàn)[M].北京:電子工業(yè)出版社,2012.endprint