本發(fā)明實施例涉及大數(shù)據(jù)的技術(shù)領(lǐng)域,尤其涉及一種信息檢索的方法及裝置。
背景技術(shù):
隨著大數(shù)據(jù)逐步走過了探索階段、市場啟動階段,大數(shù)據(jù)已經(jīng)進(jìn)入從概念到實際應(yīng)用的關(guān)鍵轉(zhuǎn)折期。大數(shù)據(jù)在接受度、技術(shù)、應(yīng)用等各個方面趨于成熟,開始步入產(chǎn)業(yè)的快速發(fā)展階段。大數(shù)據(jù)巨大的應(yīng)用價值帶動了大數(shù)據(jù)行業(yè)的迅速發(fā)展,預(yù)測到2017年全球大數(shù)據(jù)技術(shù)和服務(wù)市場的2018年的復(fù)合年增長率將達(dá)到26.4%,規(guī)模達(dá)到415億美元,是整個IT市場增幅的6倍。大數(shù)據(jù)市場規(guī)模在2020年有望達(dá)到611.6億美元,符合年增長率將達(dá)到26%。
在大數(shù)據(jù)技術(shù)迅速發(fā)展和廣泛應(yīng)用的同時,大數(shù)據(jù)也正在面臨網(wǎng)絡(luò)攻擊、數(shù)據(jù)泄露等嚴(yán)重安全問題,國內(nèi)外各種信息泄露的數(shù)據(jù)安全事件頻頻發(fā)生。如:美國“棱鏡門”事件、國家重要基礎(chǔ)設(shè)施攻擊事件(烏克蘭電廠事件、伊朗的震網(wǎng)病毒Stuxnet、Flame火焰病毒、Duqu病毒等)、各類重大數(shù)據(jù)泄露事件(攜程漏洞事件、中國快遞1400萬用戶信息泄露、eBay數(shù)據(jù)大泄漏、12306用戶數(shù)據(jù)泄露、500萬谷歌賬戶信息被泄露、CSDN網(wǎng)站600萬用戶信息外泄事件)、各類重大網(wǎng)絡(luò)安全事件(OpenSSL心臟出血漏洞)。
以上說明各類事件表明需要加強國產(chǎn)自主可控基礎(chǔ)軟硬件的驗證與推廣的迫切性。大數(shù)據(jù)時代對于信息安全的自主可控提出了更高的要求。大數(shù)據(jù)平臺中的海量數(shù)據(jù)中可能包含大量敏感信息、甚至國家機密信息。這些信息存在被竊取和泄漏的風(fēng)險,一旦這些數(shù)據(jù)被惡意攻擊者掌握,后果將不堪設(shè)想。需要提高信息安全領(lǐng)域基礎(chǔ)設(shè)施大數(shù)據(jù)平臺的安全防護(hù)能力,實現(xiàn)信息安全領(lǐng)域基礎(chǔ)設(shè)施的安全性。
目前,我國計算機及網(wǎng)絡(luò)信息系統(tǒng)使用的主要操作系統(tǒng)和芯片、數(shù)據(jù)庫、路由器等核心技術(shù),以及互聯(lián)網(wǎng)領(lǐng)域的核心基礎(chǔ)服務(wù)等,掌握在美國企業(yè)手中。缺少自主可控的技術(shù)和能力是我國信息安全面臨的最大隱患。外國開發(fā)、銷售的軟硬件信息系統(tǒng)和信息安全隱患問題突出,各類的系統(tǒng)后門、木馬、軟件陷阱、邏輯炸彈等防不勝防。迫切需要國內(nèi)IT企業(yè)和行業(yè)共同研發(fā)自主可控、自主知識產(chǎn)權(quán)的信息系統(tǒng)、信息環(huán)境和信息安全產(chǎn)品。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提出一種信息檢索的方法及裝置,旨在解決大數(shù)據(jù)平臺中的信息檢索組件Solr在國產(chǎn)基礎(chǔ)軟硬件的遷移、適配以及優(yōu)化的問題。
為達(dá)此目的,本發(fā)明實施例采用以下技術(shù)方案:
第一方面,一種信息檢索的方法,所述方法包括:
將大數(shù)據(jù)平臺軟件遷移到一個預(yù)設(shè)軟硬件平臺,所述遷移包括開發(fā)環(huán)境的遷移和運行環(huán)境的遷移,以及應(yīng)用軟件的移植和適配;
在所述遷移之后,在索引建立過程和信息檢索過程中,通過并行處理、數(shù)據(jù)緩存、分片處理、讀寫分離和負(fù)載分擔(dān),對信息的采集、存儲及查詢進(jìn)行性能優(yōu)化。
優(yōu)選地,所述索引建立過程,包括:
將采集到的各文檔放到各服務(wù)器的本地文件系統(tǒng)的預(yù)設(shè)目錄中,通過分詞組件Tokenizer獲取詞元Token,所述分詞組件用于將文檔分成單獨的單詞、去除標(biāo)點符號和去除停詞;
由語言處理組件Linguistic Processor對所述詞元Token通過語言處理組件得到詞Term,所述語言處理組件用于變?yōu)樾慙owercase、將單詞縮減為詞根形式和將單詞轉(zhuǎn)變?yōu)樵~根形式;
由索引組件Indexer對所述詞Term進(jìn)行索引處理組件得到索引-文檔倒排鏈表Posting List,所述索引處理組件用于為所述詞Term創(chuàng)建字典、對所述字典按字母順序進(jìn)行排序并合并相同的詞Term成為文檔倒排Posting List的鏈表;
通過索引存儲Storage將所述索引-文檔倒排鏈表Posting List寫入磁盤文件系統(tǒng)。
優(yōu)選地,所述信息檢索過程,包括:
將輸入的查詢語句SQL,經(jīng)過詞法分析得到單詞關(guān)鍵字;
通過語法分析組件對所述單詞關(guān)鍵字進(jìn)行語法分析;
通過所述語言處理組件處理并輸出詞Term;
搜索索引并根據(jù)上一環(huán)節(jié)的詞Term從磁盤中的索引文件中進(jìn)行搜索;
經(jīng)過搜索索引組件檢索得到符合條件的文檔,再由結(jié)果排序組件進(jìn)行排序后返回查詢結(jié)果。
優(yōu)選地,所述經(jīng)過搜索索引組件檢索得到符合條件的文檔,包括:
在反向索引表中,分別找出包含第一關(guān)鍵詞、第二關(guān)鍵詞和第三關(guān)鍵詞的文檔鏈表;
對包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的鏈表進(jìn)行合并操作,得到同時包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的文檔鏈表;
再將同時包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的文檔鏈表與所述第三關(guān)鍵詞的文檔鏈表進(jìn)行差操作,去除包含第三關(guān)鍵詞的文檔,得到包含第一關(guān)鍵詞且包含第二關(guān)鍵詞且不包含第三關(guān)鍵詞的文檔鏈表,所述包含第一關(guān)鍵詞且包含第二關(guān)鍵詞且不包含第三關(guān)鍵詞的文檔鏈表為符合條件的文檔。
優(yōu)選地,所述通過并行處理、數(shù)據(jù)緩存、分片處理、讀寫分離和負(fù)載分擔(dān),對信息的采集、存儲及查詢進(jìn)行性能優(yōu)化,包括:
在并行處理的數(shù)據(jù)采集與傳輸、索引建立與更新、信息讀取與檢索的數(shù)據(jù)處理中,針對不同來源、不同類型的數(shù)據(jù),按照一定的時間周期進(jìn)行建表,存儲和檢索,并實現(xiàn)對數(shù)據(jù)的并發(fā)處理;數(shù)據(jù)采集與傳輸將采集到的數(shù)據(jù)分門別類地放到相應(yīng)的信息鏈表,通過不同的處理線程進(jìn)行分詞、語言處理、索引及存儲處理,再將索引數(shù)據(jù)對應(yīng)的collection寫入到不同節(jié)點的不同硬盤及分區(qū)的不同索引文件中;信息檢索時,接收輸入查詢語句后,經(jīng)過詞法、語法、語言處理組件后,并發(fā)調(diào)用索引搜索線程并發(fā)搜索不同節(jié)點上的不同硬盤及分區(qū)上的不同索引文件,將檢索結(jié)果分別進(jìn)行相似度計算和排序,再統(tǒng)一進(jìn)行結(jié)果排序,并將查詢結(jié)果進(jìn)行頁面展示;
在數(shù)據(jù)緩存的信息檢索時,采用預(yù)先申請內(nèi)存、緩存常用數(shù)據(jù)和過程結(jié)果方式;文本數(shù)據(jù)從采集到傳輸,到索引建立與更新,到信息讀取與檢索的數(shù)據(jù)處理過程中,通過內(nèi)存對數(shù)據(jù)進(jìn)行緩存,最后僅需一次寫盤操作;
在分片處理的信息檢索時,對大數(shù)據(jù)量的信息檢索采取分片和分包處理;采用分片響應(yīng)策略處理大數(shù)據(jù)量的信息查詢時,在訪問、查詢機處理大數(shù)據(jù)量信息時,對用于程序的訪問查詢采用分片響應(yīng)方式,分批次返回查詢結(jié)果;客戶端對接收到的數(shù)據(jù)進(jìn)行處理的過程是攜帶返回數(shù)據(jù)的過程;
在讀寫分離的信息檢索中,將距離當(dāng)前越近的近期數(shù)據(jù)獨立于歷史數(shù)據(jù)分開存儲,并且用第一存儲介質(zhì)來存儲所述近期數(shù)據(jù),用第二存儲介質(zhì)來存儲所述歷史數(shù)據(jù);
在負(fù)載分擔(dān)的信息檢索時,采用負(fù)載分擔(dān)的方式,將用戶的查詢請求均勻分發(fā)到不同Solr節(jié)點上,各個節(jié)點接收到查詢請求后,對本機的索引數(shù)據(jù)庫進(jìn)行檢索。
第二方面,一種信息檢索的裝置,所述裝置包括:
遷移模塊,用于將大數(shù)據(jù)平臺軟件遷移到一個預(yù)設(shè)軟硬件平臺,所述遷移包括開發(fā)環(huán)境的遷移和運行環(huán)境的遷移,以及應(yīng)用軟件的移植和適配;
優(yōu)化模塊,用于在所述遷移之后,在索引建立過程和信息檢索過程中,通過并行處理、數(shù)據(jù)緩存、分片處理、讀寫分離和負(fù)載分擔(dān),對信息的采集、存儲及查詢進(jìn)行性能優(yōu)化。
優(yōu)選地,所述優(yōu)化模塊,具體用于:
將采集到的各文檔放到各服務(wù)器的本地文件系統(tǒng)的預(yù)設(shè)目錄中,通過分詞組件Tokenizer獲取詞元Token,所述分詞組件用于將文檔分成單獨的單詞、去除標(biāo)點符號和去除停詞;
由語言處理組件Linguistic Processor對所述詞元Token通過語言處理組件得到詞Term,所述語言處理組件用于變?yōu)樾慙owercase、將單詞縮減為詞根形式和將單詞轉(zhuǎn)變?yōu)樵~根形式;
由索引組件Indexer對所述詞Term進(jìn)行索引處理組件得到索引-文檔倒排鏈表Posting List,所述索引處理組件用于為所述詞Term創(chuàng)建字典、對所述字典按字母順序進(jìn)行排序并合并相同的詞Term成為文檔倒排Posting List的鏈表;
通過索引存儲Storage將所述索引-文檔倒排鏈表Posting List寫入磁盤文件系統(tǒng)。
優(yōu)選地,所述優(yōu)化模塊,還具體用于:
將輸入的查詢語句SQL,經(jīng)過詞法分析得到單詞關(guān)鍵字;
通過語法分析組件對所述單詞關(guān)鍵字進(jìn)行語法分析;
通過所述語言處理組件處理并輸出詞Term;
搜索索引并根據(jù)上一環(huán)節(jié)的詞Term從磁盤中的索引文件中進(jìn)行搜索;
經(jīng)過搜索索引組件檢索得到符合條件的文檔,再由結(jié)果排序組件進(jìn)行排序后返回查詢結(jié)果。
優(yōu)選地,所述優(yōu)化模塊,還具體用于:
在反向索引表中,分別找出包含第一關(guān)鍵詞、第二關(guān)鍵詞和第三關(guān)鍵詞的文檔鏈表;
對包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的鏈表進(jìn)行合并操作,得到同時包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的文檔鏈表;
再將同時包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的文檔鏈表與所述第三關(guān)鍵詞的文檔鏈表進(jìn)行差操作,去除包含第三關(guān)鍵詞的文檔,得到包含第一關(guān)鍵詞且包含第二關(guān)鍵詞且不包含第三關(guān)鍵詞的文檔鏈表,所述包含第一關(guān)鍵詞且包含第二關(guān)鍵詞且不包含第三關(guān)鍵詞的文檔鏈表為符合條件的文檔。
優(yōu)選地,所述優(yōu)化模塊,還具體用于:
在并行處理的數(shù)據(jù)采集與傳輸、索引建立與更新、信息讀取與檢索的數(shù)據(jù)處理中,針對不同來源、不同類型的數(shù)據(jù),按照一定的時間周期進(jìn)行建表,存儲和檢索,并實現(xiàn)對數(shù)據(jù)的并發(fā)處理;數(shù)據(jù)采集與傳輸將采集到的數(shù)據(jù)分門別類地放到相應(yīng)的信息鏈表,通過不同的處理線程進(jìn)行分詞、語言處理、索引及存儲處理,再將索引數(shù)據(jù)對應(yīng)的collection寫入到不同節(jié)點的不同硬盤及分區(qū)的不同索引文件中;信息檢索時,接收輸入查詢語句后,經(jīng)過詞法、語法、語言處理組件后,并發(fā)調(diào)用索引搜索線程并發(fā)搜索不同節(jié)點上的不同硬盤及分區(qū)上的不同索引文件,將檢索結(jié)果分別進(jìn)行相似度計算和排序,再統(tǒng)一進(jìn)行結(jié)果排序,并將查詢結(jié)果進(jìn)行頁面展示;
在數(shù)據(jù)緩存的信息檢索時,采用預(yù)先申請內(nèi)存、緩存常用數(shù)據(jù)和過程結(jié)果方式;文本數(shù)據(jù)從采集到傳輸,到索引建立與更新,到信息讀取與檢索的數(shù)據(jù)處理過程中,通過內(nèi)存對數(shù)據(jù)進(jìn)行緩存,最后僅需一次寫盤操作;
在分片處理的信息檢索時,對大數(shù)據(jù)量的信息檢索采取分片和分包處理;采用分片響應(yīng)策略處理大數(shù)據(jù)量的信息查詢時,在訪問、查詢機處理大數(shù)據(jù)量信息時,對用于程序的訪問查詢采用分片響應(yīng)方式,分批次返回查詢結(jié)果;客戶端對接收到的數(shù)據(jù)進(jìn)行處理的過程是攜帶返回數(shù)據(jù)的過程;
在讀寫分離的信息檢索中,將距離當(dāng)前越近的近期數(shù)據(jù)獨立于歷史數(shù)據(jù)分開存儲,并且用第一存儲介質(zhì)來存儲所述近期數(shù)據(jù),用第二存儲介質(zhì)來存儲所述歷史數(shù)據(jù);
在負(fù)載分擔(dān)的信息檢索時,采用負(fù)載分擔(dān)的方式,將用戶的查詢請求均勻分發(fā)到不同Solr節(jié)點上,各個節(jié)點接收到查詢請求后,對本機的索引數(shù)據(jù)庫進(jìn)行檢索。
本發(fā)明實施例提供的一種信息檢索的方法及裝置,將大數(shù)據(jù)平臺軟件遷移到一個預(yù)設(shè)軟硬件平臺,所述遷移包括開發(fā)環(huán)境的遷移和運行環(huán)境的遷移,以及應(yīng)用軟件的移植和適配;在所述遷移之后,在索引建立過程和信息檢索過程中,通過并行處理、數(shù)據(jù)緩存、分片處理、讀寫分離和負(fù)載分擔(dān),對信息的采集、存儲及查詢進(jìn)行性能優(yōu)化。從而基于國產(chǎn)基礎(chǔ)軟硬件的信息檢索技術(shù),大數(shù)據(jù)平臺中的信息檢索組件Solr在國產(chǎn)基礎(chǔ)軟硬件的遷移、適配以及優(yōu)化的問題。
附圖說明
圖1是本發(fā)明實施例提供的一種信息檢索的方法的流程示意圖;
圖2是本發(fā)明實施例提供的一種大數(shù)據(jù)平臺和信息檢索系統(tǒng)組成示意圖;
圖3是本發(fā)明實施例提供的一種國產(chǎn)硬件核心組件圖;
圖4是本發(fā)明實施例提供的一種信息檢索系統(tǒng)的索引建立和信息檢索流程圖;
圖5是本發(fā)明實施例提供的一種并行處理優(yōu)化示意圖;
圖6是本發(fā)明實施例提供的一種數(shù)據(jù)緩存優(yōu)化示意圖;
圖7是本發(fā)明實施例提供的一種分片處理優(yōu)化示意圖;
圖8是本發(fā)明實施例提供的一種讀寫分離優(yōu)化示意圖;
圖9是本發(fā)明實施例提供的一種負(fù)載分擔(dān)優(yōu)化示意圖;
圖10是本發(fā)明實施例提供的一種信息檢索的裝置的功能模塊示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明實施例作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明實施例,而非對本發(fā)明實施例的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明實施例相關(guān)的部分而非全部結(jié)構(gòu)。
參考圖1,圖1是本發(fā)明實施例提供的一種信息檢索的方法的流程示意圖。
如圖1所示,所述信息檢索的方法包括:
步驟101,將大數(shù)據(jù)平臺軟件遷移到一個預(yù)設(shè)軟硬件平臺,所述遷移包括開發(fā)環(huán)境的遷移和運行環(huán)境的遷移,以及應(yīng)用軟件的移植和適配;
具體的,本發(fā)明中提及的大數(shù)據(jù)平臺主要組成如下圖2中的“大數(shù)據(jù)平臺”框中所示,在本發(fā)明中重點解決大數(shù)據(jù)平臺中的信息檢索軟件(如下圖2中的“信息檢索軟件”框中所示)在國產(chǎn)基礎(chǔ)軟硬件上的遷移和優(yōu)化。
Solr是一個獨立的基于第一關(guān)鍵詞的Java搜索引擎服務(wù)器,它對外提供類似于Web-service的API接口。用戶可以通過http請求,向搜索引擎服務(wù)器提交一定格式的XML文件,生成索引;也可以通過Http Get操作提出查找請求,并得到XML格式的返回結(jié)果。
Solr是一個高性能,采用Java開發(fā),基于第一關(guān)鍵詞的全文搜索服務(wù)器。同時對其進(jìn)行了擴(kuò)展,提供了比第一關(guān)鍵詞更為豐富的查詢語言,同時實現(xiàn)了可配置、可擴(kuò)展并對查詢性能進(jìn)行了優(yōu)化,并且提供了一個完善的功能管理界面,是一款非常優(yōu)秀的信息檢索軟件。
Solr已經(jīng)在眾多大型的網(wǎng)站中使用,較為成熟和穩(wěn)定。由于Solr基于java開發(fā),因此Solr在不同硬件平臺和操作系統(tǒng)上都能較好部署使用。
本發(fā)明中主要涉及到的國產(chǎn)硬件主要包括:基于國產(chǎn)FT-1500A系列CPU的國產(chǎn)服務(wù)器。
國產(chǎn)服務(wù)器核心組成如下圖3所示,主要核心組件有:FT-1500A系列CPU、8*16GB DDR3內(nèi)存、2*SAS接口固態(tài)硬盤、12*SATA接口機械硬盤、2*千兆網(wǎng)口和2*萬兆網(wǎng)口,上述組件全部由國產(chǎn)自主研發(fā)和生產(chǎn)。
其中,國產(chǎn)FT-1500A系列CPU是64位通用CPU,兼容ARM V8指令集,采用國際先進(jìn)的28nm工藝流片,具有高性能、低功耗等特點,關(guān)鍵技術(shù)國內(nèi)領(lǐng)先,可實現(xiàn)對Intel中高端“至強”服務(wù)器芯片的替代,并廣泛應(yīng)用于政府辦公和金融、稅務(wù)等各行業(yè)信息化系統(tǒng)之中。FT-1500A系列處理器目前包括4核和16核兩款產(chǎn)品。其中4核處理器芯片主要面向桌面終端和輕量級服務(wù)器應(yīng)用領(lǐng)域,主頻2GHz,功耗15W,兩個DDR3-1600存儲通道,支持電源關(guān)斷、DVFS等低功耗技術(shù),適用于構(gòu)建臺式終端、一體機、便攜筆記本、微服務(wù)器等產(chǎn)品;16核處理器芯片面向服務(wù)器應(yīng)用領(lǐng)域,主頻2GHz,功耗35W,4個DDR3-1600存儲通道,支持虛擬化功能,適用于構(gòu)建數(shù)據(jù)中心的高性能計算和存儲等產(chǎn)品。本發(fā)明中,采用16核處理器芯片。
本發(fā)明中主要涉及到的國產(chǎn)軟件主要包括:中標(biāo)麒麟安全操作系統(tǒng):
2010年12月16日,兩大國產(chǎn)操作系統(tǒng)—民用的“中標(biāo)Linux”操作系統(tǒng)和解放軍研制的“銀河麒麟”操作系統(tǒng),在上海正式宣布合并,雙方今后將共同以“中標(biāo)麒麟”的新品牌統(tǒng)一出現(xiàn)在市場上,并將開發(fā)軍民兩用的操作系統(tǒng)。
采用高安全等級的中標(biāo)麒麟安全操作系統(tǒng)軟件作為系統(tǒng)平臺,結(jié)合自主CPU硬件、國產(chǎn)數(shù)據(jù)庫、中間件和應(yīng)用軟件,以及軍用密碼算法及安全設(shè)備,構(gòu)建國防、涉密、機要等領(lǐng)域自主安全可控的軟件開發(fā)/運行環(huán)境。
通常基于Intel X86架構(gòu)的國際主流商用計算機開發(fā)和使用大數(shù)據(jù)平臺軟件。但為滿足政府、國防、金融、電力、機要、保密等領(lǐng)域?qū)Σ僮飨到y(tǒng)的高安全性需求,我們需要將這些大數(shù)據(jù)平臺軟件遷移到一個自主可控、高安全等級的可信國產(chǎn)基礎(chǔ)軟硬件平臺之上。遷移的過程包括開發(fā)和運行環(huán)境的遷移,以及應(yīng)用軟件本身的移植和適配,再經(jīng)過嚴(yán)格測試方可投入實際使用。在本發(fā)明中將闡述大數(shù)據(jù)平臺軟件中的信息檢索軟件在國產(chǎn)基礎(chǔ)軟硬件平臺的遷移方法。
遷移工作包括開發(fā)和運行環(huán)境的遷移,以及應(yīng)用軟件本身的移植和適配。
第一步:開發(fā)環(huán)境的遷移:
1、在上述國產(chǎn)服務(wù)器安裝中標(biāo)麒麟安全操作系統(tǒng);
2、以root用戶登陸系統(tǒng),并通過準(zhǔn)備相應(yīng)的軟件安裝包;
3、安裝JDK,版本為:jdk-7u10-linux-arm-sfp.tar.gz,并配置JDK環(huán)境變量;
4、安裝Eclipse,版本為eclipse-jee-luna-SR1-linux-gtk.tar.gz。
第二步:運行環(huán)境的遷移:
安裝Tomcat,版本為apache-tomcat-7.0.54.tar.gz,安裝成功后啟動Tomcat;
安裝zookeeper,版本為zookeeper-3.3.6.tar.gz,安裝成功后啟動zookeeper;
安裝solr,版本為solr-5.4.0.tgz,配置Solr,安裝成功后重新啟動Tomcat。
第三步:運行環(huán)境調(diào)試:
使用了3臺服務(wù)器安裝zookeeper、另外4臺服務(wù)器作為運行solr程序。
1.修改solr中各節(jié)點的配置文件;
2.重啟tomcat服務(wù);
3.http://ip:8080/solr/index.html可以看到solr控制臺。
步驟102,在所述遷移之后,在索引建立過程和信息檢索過程中,通過并行處理、數(shù)據(jù)緩存、分片處理、讀寫分離和負(fù)載分擔(dān),對信息的采集、存儲及查詢進(jìn)行性能優(yōu)化。
具體的,國產(chǎn)計算機與國際主流商用計算機相比,其計算、存儲及IO的性能差距較大,因此,為了滿足各種性能指標(biāo)要求,在基于國產(chǎn)軟硬件上遷移和使用信息檢索軟件過程中,需要采用多種優(yōu)化技術(shù)。
在本發(fā)明中,將重點闡述信息檢索軟件在國產(chǎn)基礎(chǔ)軟硬件平臺的優(yōu)化方法。主要包括:并行處理、數(shù)據(jù)緩存、分片處理、讀寫分離等技術(shù),對信息的采集、存儲及查詢?nèi)^程進(jìn)行性能優(yōu)化,彌補當(dāng)前國產(chǎn)基礎(chǔ)軟硬件對信息系統(tǒng)支撐能力不足,提供國產(chǎn)化信息系統(tǒng)的運行效率。
其中,所述索引建立過程,包括:
將采集到的各文檔放到各服務(wù)器的本地文件系統(tǒng)的預(yù)設(shè)目錄中,通過分詞組件Tokenizer獲取詞元Token,所述分詞組件用于將文檔分成單獨的單詞、去除標(biāo)點符號和去除停詞;
由語言處理組件Linguistic Processor對所述詞元Token通過語言處理組件得到詞Term,所述語言處理組件用于變?yōu)樾慙owercase、將單詞縮減為詞根形式和將單詞轉(zhuǎn)變?yōu)樵~根形式;
由索引組件Indexer對所述詞Term進(jìn)行索引處理組件得到索引-文檔倒排鏈表Posting List,所述索引處理組件用于為所述詞Term創(chuàng)建字典、對所述字典按字母順序進(jìn)行排序并合并相同的詞Term成為文檔倒排Posting List的鏈表;
通過索引存儲Storage將所述索引-文檔倒排鏈表Posting List寫入磁盤文件系統(tǒng)。
具體的,優(yōu)化之前,先了解一下Solr信息索引軟件的工作流程,參考下圖4。其中包含:索引建立過程和信息檢索過程,下面的各種優(yōu)化技術(shù)都是針對這兩個過程進(jìn)行的。
索引建立過程:
第一步:將采集到的各位文檔(Document)放到各個服務(wù)器的本地文件系統(tǒng)的某個目錄。然后通過分詞組件(Tokenizer)完成如下操作得到詞元(Token)
1.將文檔分成一個一個單獨的單詞。
2.去除標(biāo)點符號。
3.去除停詞(Stop word)。
第二步:由語言處理組件(Linguistic Processor)對得到的詞元(Token)做一些同語言相關(guān)的處理得到詞(Term):
1.變?yōu)樾?Lowercase)。
2.將單詞縮減為詞根形式,如“cars”到“car”等。這種操作稱為:stemming。
3.將單詞轉(zhuǎn)變?yōu)樵~根形式,如“drove”到“drive”等。這種操作稱為:lemmatization。
第三步:接下來由索引組件(Indexer)針對詞(Term)做以下幾件事情得到索引-文檔倒排鏈表(Posting List):
1.利用得到的詞(Term)創(chuàng)建一個字典.
2.對字典按字母順序進(jìn)行排序.
3.合并相同的詞(Term)成為文檔倒排(Posting List)鏈表.
第四步:接下來由索引存儲(Storage)將索引-文檔倒排鏈表(Posting List)寫入磁盤文件系統(tǒng)。
至此,基本完成索引建立的所有工作。
其中,所述信息檢索過程,包括:
將輸入的查詢語句SQL,經(jīng)過詞法分析得到單詞關(guān)鍵字;
通過語法分析組件對所述單詞關(guān)鍵字進(jìn)行語法分析;
通過所述語言處理組件處理并輸出詞Term;
搜索索引并根據(jù)上一環(huán)節(jié)的詞Term從磁盤中的索引文件中進(jìn)行搜索;
經(jīng)過搜索索引組件檢索得到符合條件的文檔,再由結(jié)果排序組件進(jìn)行排序后返回查詢結(jié)果。
優(yōu)選地,所述經(jīng)過搜索索引組件檢索得到符合條件的文檔,包括:
在反向索引表中,分別找出包含第一關(guān)鍵詞、第二關(guān)鍵詞和第三關(guān)鍵詞的文檔鏈表;
對包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的鏈表進(jìn)行合并操作,得到同時包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的文檔鏈表;
再將同時包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的文檔鏈表與所述第三關(guān)鍵詞的文檔鏈表進(jìn)行差操作,去除包含第三關(guān)鍵詞的文檔,得到包含第一關(guān)鍵詞且包含第二關(guān)鍵詞且不包含第三關(guān)鍵詞的文檔鏈表,所述包含第一關(guān)鍵詞且包含第二關(guān)鍵詞且不包含第三關(guān)鍵詞的文檔鏈表為符合條件的文檔。
其中,第一關(guān)鍵詞可以為lucene;第二關(guān)鍵詞可以為learn;第三關(guān)鍵詞可以為hadoop。
另外,該文檔也可以包括第一關(guān)鍵詞、第二關(guān)鍵詞和/或第三關(guān)鍵詞。不限于同時包括第一關(guān)鍵詞、第二關(guān)鍵詞和第三關(guān)鍵詞的情況。
具體的,信息檢索過程:
第一步:將輸入的查詢語句(SQL),經(jīng)過詞法分析得到單詞關(guān)鍵字。
第二步:然后經(jīng)過語法分析組件對輸入的單次關(guān)鍵字進(jìn)行語法分析。
主要是根據(jù)查詢語句的語法規(guī)則來形成一棵語法樹
第三步:經(jīng)由語言處理組件(Linguistic Processor)處理,和索引建立過程中的語言處理相似,同樣輸出詞(Term)
第四步:搜索索引根據(jù)上一環(huán)節(jié)的詞(Term),從磁盤中的索引文件中進(jìn)行搜索,具體:
掃描文檔倒排鏈表,得到符合語法樹的文檔,具體包括:
1.首先,在反向索引表中,分別找出包含第一關(guān)鍵詞,第二關(guān)鍵詞,第三關(guān)鍵詞的文檔鏈表。
2.其次,對包含第一關(guān)鍵詞,第二關(guān)鍵詞的鏈表進(jìn)行合并操作,得到既包含第一關(guān)鍵詞又包含第二關(guān)鍵詞的文檔鏈表。
3.然后,將此鏈表與第三關(guān)鍵詞的文檔鏈表進(jìn)行差操作,去除包含第三關(guān)鍵詞的文檔,從而得到既包含第一關(guān)鍵詞又包含第二關(guān)鍵詞而且不包含第三關(guān)鍵詞的文檔鏈表。
4.此文檔鏈表就是我們要找的文檔。
第五步:經(jīng)過搜索索引組件檢索得到符合條件的文檔(Document),然后由結(jié)果排序組件進(jìn)行排序,最后返回查詢結(jié)果。
至此,基本完成信息檢索的所有工作。
優(yōu)選地,所述通過并行處理、數(shù)據(jù)緩存、分片處理、讀寫分離和負(fù)載分擔(dān),對信息的采集、存儲及查詢進(jìn)行性能優(yōu)化,包括:
在并行處理的數(shù)據(jù)采集與傳輸、索引建立與更新、信息讀取與檢索的數(shù)據(jù)處理中,針對不同來源、不同類型的數(shù)據(jù),按照一定的時間周期進(jìn)行建表,存儲和檢索,并實現(xiàn)對數(shù)據(jù)的并發(fā)處理;數(shù)據(jù)采集與傳輸將采集到的數(shù)據(jù)分門別類地放到相應(yīng)的信息鏈表,通過不同的處理線程進(jìn)行分詞、語言處理、索引及存儲處理,再將索引數(shù)據(jù)對應(yīng)的collection寫入到不同節(jié)點的不同硬盤及分區(qū)的不同索引文件中;信息檢索時,接收輸入查詢語句后,經(jīng)過詞法、語法、語言處理組件后,并發(fā)調(diào)用索引搜索線程并發(fā)搜索不同節(jié)點上的不同硬盤及分區(qū)上的不同索引文件,將檢索結(jié)果分別進(jìn)行相似度計算和排序,再統(tǒng)一進(jìn)行結(jié)果排序,并將查詢結(jié)果進(jìn)行頁面展示;
在數(shù)據(jù)緩存的信息檢索時,采用預(yù)先申請內(nèi)存、緩存常用數(shù)據(jù)和過程結(jié)果方式;過緩存計算和處理后產(chǎn)生的中間結(jié)果,來提高結(jié)果返回和展示的效率;文本數(shù)據(jù)從采集到傳輸,到索引建立與更新,到信息讀取與檢索的數(shù)據(jù)處理過程中,通過內(nèi)存對數(shù)據(jù)進(jìn)行緩存,最后僅需一次寫盤操作;
在分片處理的信息檢索時,對大數(shù)據(jù)量的信息檢索采取分片和分包處理;采用分片響應(yīng)策略處理大數(shù)據(jù)量的信息查詢時,在訪問、查詢機處理大數(shù)據(jù)量信息時,對用于程序的訪問查詢采用分片響應(yīng)方式,分批次返回查詢結(jié)果;客戶端對接收到的數(shù)據(jù)進(jìn)行處理的過程是攜帶返回數(shù)據(jù)的過程;
在讀寫分離的信息檢索中,將距離當(dāng)前越近的近期數(shù)據(jù)獨立于歷史數(shù)據(jù)分開存儲,并且用第一存儲介質(zhì)來存儲所述近期數(shù)據(jù),用第二存儲介質(zhì)來存儲所述歷史數(shù)據(jù);
在負(fù)載分擔(dān)的信息檢索時,采用負(fù)載分擔(dān)的方式,將用戶的查詢請求均勻分發(fā)到不同Solr節(jié)點上,各個節(jié)點接收到查詢請求后,對本機的索引數(shù)據(jù)庫進(jìn)行檢索。
具體的,由于國產(chǎn)計算機與國際主流商用計算機相比,其計算、存儲及IO的性能差距較大,因此,為了滿足各種性能指標(biāo)要求,在基于國產(chǎn)軟硬件上遷移和使用信息檢索軟件過程中,需要采用多種優(yōu)化技術(shù)。在本發(fā)明中采用如下優(yōu)化技術(shù):
1、并行處理:
主要解決國產(chǎn)基礎(chǔ)軟硬件環(huán)境下計算和IO密集類型的應(yīng)用軟件處理效率不高問題,在基于開源Solr的信息檢索軟件中,包括索引建立、更新,檢索等高IO密集型操作和分詞、語法分析、匯聚、模式匹配、相關(guān)度計算、分組和排序等高計算密集型操作。
針對國產(chǎn)基礎(chǔ)軟硬件和基于開源Solr的信息檢索軟件的不足和特性,我們將數(shù)據(jù)采集與傳輸、索引建立與更新、信息讀取與檢索等數(shù)據(jù)處理任務(wù)進(jìn)行細(xì)粒度的分解,達(dá)到多進(jìn)程多線程并發(fā)執(zhí)行,從而提升整體并發(fā)處理能力。
國產(chǎn)CPU采用FT-1500A處理,是64位通用CPU,采用16核設(shè)計,故在應(yīng)用軟件實現(xiàn)過程中,可通過多核多線程優(yōu)化方法充分發(fā)揮過程計算機的多核性能。如下圖5所示,尤其是在一些計算密集型應(yīng)用中,盡管過程計算機采用精簡指令集(RISC),與傳統(tǒng)復(fù)雜指令集(CISC)相比,減少了尋址方式,但在CPU自身能力、總線服務(wù)方式、硬盤讀寫方式及制造工藝方面的不足,導(dǎo)致過程計算機讀取較大文件時耗時較長。
在數(shù)據(jù)采集與傳輸、索引建立與更新、信息讀取與檢索等數(shù)據(jù)處理等環(huán)節(jié),針對不同來源,不同類型的數(shù)據(jù),并按一定的時間周期進(jìn)行建表,存儲和檢索,從而實現(xiàn)對數(shù)據(jù)的并發(fā)處理。其中,數(shù)據(jù)采集和傳輸部分將采集到的數(shù)據(jù)分門別類地放到相應(yīng)的信息鏈表,然后通過不同的處理線程進(jìn)行分詞、語言處理、索引及存儲等處理,然后將索引數(shù)據(jù)對應(yīng)的collection寫入到不同節(jié)點的不同硬盤及分區(qū)的不同索引文件中,從而大大提高計算和存儲的并發(fā)能力。信息檢索時,用戶輸入查詢語句后,經(jīng)過詞法、語法、語言處理組件后,然后并發(fā)調(diào)用索引搜索線程并發(fā)搜索不同節(jié)點上的不同硬盤及分區(qū)上的不同索引文件,將檢索結(jié)果分別進(jìn)行相似度計算和排序,然后再統(tǒng)一進(jìn)行結(jié)果排序,并將查詢結(jié)果進(jìn)行頁面展示。
在國產(chǎn)化基礎(chǔ)軟硬件環(huán)境下,信息檢索軟件初步驗證表明,索引建立和信息檢索的性能(16線程)比單線程的效率要提高12倍左右。
2、數(shù)據(jù)緩存:
基于數(shù)據(jù)緩存的軟件性能優(yōu)化技術(shù)主要解決國產(chǎn)基礎(chǔ)軟硬件環(huán)境下的處理大數(shù)據(jù)信息時,磁盤讀寫慢和文件拷貝等待時間長導(dǎo)致的運行效率不高問題。
信息檢索軟件在設(shè)計時,采用預(yù)先申請內(nèi)存、緩存常用數(shù)據(jù)和過程結(jié)果等方式,如下圖6所示,充分利用內(nèi)存和緩存在數(shù)據(jù)訪問處理中的功能,從而提高應(yīng)用軟件的執(zhí)行效率。
利用數(shù)據(jù)緩存,提供結(jié)果返回和展示效率。對各類實時信息采用緩存在刷新的整體策略,減少刷新次數(shù),提高信息顯示效率。
緩存常用數(shù)據(jù),降低磁盤讀寫次數(shù)。對報文模板和專業(yè)計算參數(shù)等常用數(shù)據(jù)進(jìn)行緩存,可以有效減少磁盤讀寫次數(shù),提高應(yīng)用軟件相應(yīng)速度。對于需要頻繁加載的常用數(shù)據(jù),在軟件啟動初始化時,開辟緩存空間自動預(yù)加載,可以大幅提升計算效率。
緩存過程數(shù)據(jù),降低寫盤開銷。數(shù)據(jù)經(jīng)過計算和處理后產(chǎn)生中間結(jié)果,通過磁盤進(jìn)行保存時,增加了應(yīng)用軟件的開銷。從文本數(shù)據(jù)從采集到傳輸,到索引建立與更新,到信息讀取與檢索等一系列數(shù)據(jù)處理過程中,可以通過內(nèi)存對數(shù)據(jù)進(jìn)行緩存,最后僅需一次寫盤操作,這樣可以有效減少磁盤寫入開銷,從而提高用戶響應(yīng)速度。
在國產(chǎn)基礎(chǔ)軟硬件環(huán)境下,信息檢索軟件初步驗證表明,對應(yīng)相同數(shù)據(jù)量下,采用緩存技術(shù)后,能提高信息檢索效率20%左右。
3、分片處理:
基于分片處理的信息檢索技術(shù)可以解決在國產(chǎn)基礎(chǔ)軟硬件環(huán)境下,數(shù)據(jù)采集與傳輸、索引建立與更新、信息讀取與檢索等數(shù)據(jù)處理等環(huán)節(jié)處理大數(shù)據(jù)量下等待時間長,難以滿足性能指標(biāo)需求的問題。
在應(yīng)用軟件設(shè)計時,尤其是對于大數(shù)據(jù)量的信息檢索軟件而言,處理和查詢數(shù)據(jù)是進(jìn)行分片和分包處理,如下圖7所示,可以減少單次處理和查詢的時延,不同分片可以形成流水線式的并行處理效果,從而提高系統(tǒng)的響應(yīng)速度,改善用戶體驗。
分片處理與一次性整體處理策略相比,在信息量不丟失的情況下,采集與傳輸,索引建立與更新、信息讀取與檢索等數(shù)據(jù)處理等環(huán)節(jié)的可靠性和時延均得到了有效的改善。
采用分片響應(yīng)策略處理大數(shù)據(jù)量的信息查詢時,在訪問、查詢機處理大數(shù)據(jù)量信息時,對客戶程序的訪問查詢采用分片響應(yīng)方式,分批次返回查詢結(jié)果??蛻舳藢邮盏降臄?shù)據(jù)進(jìn)行處理的過程是得帶返回數(shù)據(jù)的過程,在不影響用戶數(shù)據(jù)使用的情況下,有效降低系統(tǒng)資源的消耗,縮短了用戶等待時間。
在國產(chǎn)基礎(chǔ)軟硬件環(huán)境下,信息檢索軟件初步驗證表明,客戶程序請求查詢數(shù)在萬條數(shù)據(jù),服務(wù)類應(yīng)用軟件對該請求一次性處理時,不僅在查詢過程中消耗大量的內(nèi)存,而且返回過程中也占用大量的網(wǎng)絡(luò)資源。如該請求分10次處理,即:每千條記錄為一批,響應(yīng)效率提高80%,查詢效率提高25%。
4、讀寫分離
采用讀寫分離的信息檢索技術(shù)可以解決在國產(chǎn)基礎(chǔ)軟硬件環(huán)境下,索引數(shù)據(jù)建立和更新等寫磁盤操作與信息讀取與檢索等讀磁盤操作之間對磁盤磁頭爭用的沖突問題,如下圖8所示。一般而言,只有最近入庫的數(shù)據(jù)存在沖突問題,距離當(dāng)前越遠(yuǎn)的數(shù)據(jù)再次更新的概率較小。距離當(dāng)前越近的數(shù)據(jù)再次更新的概率高,查詢檢索的概率也加高,因此需要將該部分?jǐn)?shù)據(jù)獨立于歷史數(shù)據(jù)分開存儲,并且用較好的存儲介質(zhì)來存儲近期數(shù)據(jù),用成本較低的存儲介質(zhì)來存儲歷史數(shù)據(jù),從而達(dá)到較好的用戶體驗效果,另一方面又可以較好的成本控制。
在國產(chǎn)基礎(chǔ)軟硬件環(huán)境下,信息檢索軟件初步驗證表明,采用讀寫分離技術(shù)之后,對歷史數(shù)據(jù)的檢索響應(yīng)效率提高20%,對近期數(shù)據(jù)的檢索查詢效率提高10%。
5、負(fù)載分擔(dān):
基于負(fù)載分擔(dān)的信息檢索技術(shù)可以解決在國產(chǎn)基礎(chǔ)軟硬件環(huán)境下,信息讀取與檢索等數(shù)據(jù)處理環(huán)節(jié)查詢效率,訪問延時問題。通過如下圖9所示,采用負(fù)載分擔(dān)的方式,將用戶的查詢請求均勻分發(fā)到不同Solr節(jié)點上,各個節(jié)點接收到查詢請求后,對本機的索引數(shù)據(jù)庫進(jìn)行檢索,彼此互不影響,獨立并行工作。隨著數(shù)據(jù)量的增加,可以通過增加Solr節(jié)點數(shù)量進(jìn)行線性擴(kuò)展,從而能線性擴(kuò)容,并保持高效查詢。
本發(fā)明實施例提供的一種信息檢索的方法,將大數(shù)據(jù)平臺軟件遷移到一個預(yù)設(shè)軟硬件平臺,所述遷移包括開發(fā)環(huán)境的遷移和運行環(huán)境的遷移,以及應(yīng)用軟件的移植和適配;在所述遷移之后,在索引建立過程和信息檢索過程中,通過并行處理、數(shù)據(jù)緩存、分片處理、讀寫分離和負(fù)載分擔(dān),對信息的采集、存儲及查詢進(jìn)行性能優(yōu)化。從而基于國產(chǎn)基礎(chǔ)軟硬件的信息檢索技術(shù),大數(shù)據(jù)平臺中的信息檢索組件Solr在國產(chǎn)基礎(chǔ)軟硬件的遷移、適配以及優(yōu)化的問題。
參考圖10,圖10是本發(fā)明實施例提供的一種信息檢索的裝置的功能模塊示意圖。
如圖10所示,所述裝置包括:
遷移模塊1001,用于將大數(shù)據(jù)平臺軟件遷移到一個預(yù)設(shè)軟硬件平臺,所述遷移包括開發(fā)環(huán)境的遷移和運行環(huán)境的遷移,以及應(yīng)用軟件的移植和適配;
優(yōu)化模塊1002,用于在所述遷移之后,在索引建立過程和信息檢索過程中,通過并行處理、數(shù)據(jù)緩存、分片處理、讀寫分離和負(fù)載分擔(dān),對信息的采集、存儲及查詢進(jìn)行性能優(yōu)化。
優(yōu)選地,所述優(yōu)化模塊1001,具體用于:
將采集到的各文檔放到各服務(wù)器的本地文件系統(tǒng)的預(yù)設(shè)目錄中,通過分詞組件Tokenizer獲取詞元Token,所述分詞組件用于將文檔分成單獨的單詞、去除標(biāo)點符號和去除停詞;
由語言處理組件Linguistic Processor對所述詞元Token通過語言處理組件得到詞Term,所述語言處理組件用于變?yōu)樾慙owercase、將單詞縮減為詞根形式和將單詞轉(zhuǎn)變?yōu)樵~根形式;
由索引組件Indexer對所述詞Term進(jìn)行索引處理組件得到索引-文檔倒排鏈表Posting List,所述索引處理組件用于為所述詞Term創(chuàng)建字典、對所述字典按字母順序進(jìn)行排序并合并相同的詞Term成為文檔倒排Posting List的鏈表;
通過索引存儲Storage將所述索引-文檔倒排鏈表Posting List寫入磁盤文件系統(tǒng)。
優(yōu)選地,所述優(yōu)化模塊1001,還具體用于:
將輸入的查詢語句SQL,經(jīng)過詞法分析得到單詞關(guān)鍵字;
通過語法分析組件對所述單詞關(guān)鍵字進(jìn)行語法分析;
通過所述語言處理組件處理并輸出詞Term;
搜索索引并根據(jù)上一環(huán)節(jié)的詞Term從磁盤中的索引文件中進(jìn)行搜索;
經(jīng)過搜索索引組件檢索得到符合條件的文檔,再由結(jié)果排序組件進(jìn)行排序后返回查詢結(jié)果。
優(yōu)選地,所述優(yōu)化模塊1001,還具體用于:
在反向索引表中,分別找出包含第一關(guān)鍵詞、第二關(guān)鍵詞和第三關(guān)鍵詞的文檔鏈表;
對包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的鏈表進(jìn)行合并操作,得到同時包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的文檔鏈表;
再將同時包含所述第一關(guān)鍵詞和所述第二關(guān)鍵詞的文檔鏈表與所述第三關(guān)鍵詞的文檔鏈表進(jìn)行差操作,去除包含第三關(guān)鍵詞的文檔,得到包含第一關(guān)鍵詞且包含第二關(guān)鍵詞且不包含第三關(guān)鍵詞的文檔鏈表,所述包含第一關(guān)鍵詞且包含第二關(guān)鍵詞且不包含第三關(guān)鍵詞的文檔鏈表為符合條件的文檔。
優(yōu)選地,所述優(yōu)化模塊1001,還具體用于:
在并行處理的數(shù)據(jù)采集與傳輸、索引建立與更新、信息讀取與檢索的數(shù)據(jù)處理中,針對不同來源、不同類型的數(shù)據(jù),按照一定的時間周期進(jìn)行建表,存儲和檢索,并實現(xiàn)對數(shù)據(jù)的并發(fā)處理;數(shù)據(jù)采集與傳輸將采集到的數(shù)據(jù)分門別類地放到相應(yīng)的信息鏈表,通過不同的處理線程進(jìn)行分詞、語言處理、索引及存儲處理,再將索引數(shù)據(jù)對應(yīng)的collection寫入到不同節(jié)點的不同硬盤及分區(qū)的不同索引文件中;信息檢索時,接收輸入查詢語句后,經(jīng)過詞法、語法、語言處理組件后,并發(fā)調(diào)用索引搜索線程并發(fā)搜索不同節(jié)點上的不同硬盤及分區(qū)上的不同索引文件,將檢索結(jié)果分別進(jìn)行相似度計算和排序,再統(tǒng)一進(jìn)行結(jié)果排序,并將查詢結(jié)果進(jìn)行頁面展示;
在數(shù)據(jù)緩存的信息檢索時,采用預(yù)先申請內(nèi)存、緩存常用數(shù)據(jù)和過程結(jié)果方式;通過緩存計算和處理后產(chǎn)生的中間結(jié)果,來提高結(jié)果返回和展示的效率;文本數(shù)據(jù)從采集到傳輸,到索引建立與更新,到信息讀取與檢索的數(shù)據(jù)處理過程中,通過內(nèi)存對數(shù)據(jù)進(jìn)行緩存,最后僅需一次寫盤操作;
在分片處理的信息檢索時,對大數(shù)據(jù)量的信息檢索采取分片和分包處理;采用分片響應(yīng)策略處理大數(shù)據(jù)量的信息查詢時,在訪問、查詢機處理大數(shù)據(jù)量信息時,對用于程序的訪問查詢采用分片響應(yīng)方式,分批次返回查詢結(jié)果;客戶端對接收到的數(shù)據(jù)進(jìn)行處理的過程是攜帶返回數(shù)據(jù)的過程;
在讀寫分離的信息檢索中,將距離當(dāng)前越近的近期數(shù)據(jù)獨立于歷史數(shù)據(jù)分開存儲,并且用第一存儲介質(zhì)來存儲所述近期數(shù)據(jù),用第二存儲介質(zhì)來存儲所述歷史數(shù)據(jù);
在負(fù)載分擔(dān)的信息檢索時,采用負(fù)載分擔(dān)的方式,將用戶的查詢請求均勻分發(fā)到不同Solr節(jié)點上,各個節(jié)點接收到查詢請求后,對本機的索引數(shù)據(jù)庫進(jìn)行檢索。
本發(fā)明實施例提供的一種信息檢索的裝置,將大數(shù)據(jù)平臺軟件遷移到一個預(yù)設(shè)軟硬件平臺,所述遷移包括開發(fā)環(huán)境的遷移和運行環(huán)境的遷移,以及應(yīng)用軟件的移植和適配;在所述遷移之后,在索引建立過程和信息檢索過程中,通過并行處理、數(shù)據(jù)緩存、分片處理、讀寫分離和負(fù)載分擔(dān),對信息的采集、存儲及查詢進(jìn)行性能優(yōu)化。從而基于國產(chǎn)基礎(chǔ)軟硬件的信息檢索技術(shù),大數(shù)據(jù)平臺中的信息檢索組件Solr在國產(chǎn)基礎(chǔ)軟硬件的遷移、適配以及優(yōu)化的問題。
以上結(jié)合具體實施例描述了本發(fā)明實施例的技術(shù)原理。這些描述只是為了解釋本發(fā)明實施例的原理,而不能以任何方式解釋為對本發(fā)明實施例保護(hù)范圍的限制。基于此處的解釋,本領(lǐng)域的技術(shù)人員不需要付出創(chuàng)造性的勞動即可聯(lián)想到本發(fā)明實施例的其它具體實施方式,這些方式都將落入本發(fā)明實施例的保護(hù)范圍之內(nèi)。