[發(fā)明專利]一種索引和搜索方法有效
| 申請(qǐng)?zhí)枺?/td> | 201210466917.1 | 申請(qǐng)日: | 2012-11-19 |
| 公開(公告)號(hào): | CN102968478A | 公開(公告)日: | 2013-03-13 |
| 發(fā)明(設(shè)計(jì))人: | 邢浩 | 申請(qǐng)(專利權(quán))人: | 天津書生投資有限公司 |
| 主分類號(hào): | G06F17/30 | 分類號(hào): | G06F17/30 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 300308 天津市濱海新區(qū)空港*** | 國(guó)省代碼: | 天津;12 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 索引 搜索 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及大數(shù)據(jù)存儲(chǔ)領(lǐng)域,特別涉及云存儲(chǔ)環(huán)境下的一種索引和搜索方法。
技術(shù)背景
當(dāng)前很多軟件系統(tǒng)都提供基于全文檢索的搜索服務(wù)。全文檢索是一種將所有文本與檢索項(xiàng)匹配的文字資料檢索方法,需要對(duì)文本進(jìn)行分詞,將分詞結(jié)果生成倒排表,插入索引庫(kù)當(dāng)中,用戶通過訪問索引庫(kù)搜索到該數(shù)據(jù)。
因?yàn)閷⒌古疟韺懭胨饕龓?kù)的操作比較耗時(shí),當(dāng)高并發(fā)情況下,會(huì)很大程度上影響搜索操作的性能和數(shù)據(jù)的實(shí)時(shí)性。
傳統(tǒng)解決快速索引的方法,當(dāng)同時(shí)并發(fā)產(chǎn)生搜索和索引操作時(shí),索引操作為了不影響搜索操作,會(huì)在原有的索引庫(kù)上產(chǎn)生新的索引分片,但是這樣做會(huì)產(chǎn)生兩個(gè)問題:
索引分片會(huì)越來越多;分片越多搜索速度就越慢,如果需要對(duì)分片進(jìn)行合并,即對(duì)索引合并時(shí),又會(huì)大大影響搜索的性能。
當(dāng)索引庫(kù)有更新后,需要重新獲取搜索實(shí)例,才能得到實(shí)時(shí)的最新搜索數(shù)據(jù),但是隨著索引庫(kù)的不斷增大,產(chǎn)生一個(gè)搜索實(shí)例是需要很大開銷的。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提供一種索引和搜索方法,以實(shí)現(xiàn)高并發(fā)情況下的數(shù)據(jù)快速索引和搜索。
本發(fā)明實(shí)施例提供的一種索引和搜索方法,包括:
建立至少兩級(jí)索引庫(kù);由所述至少兩級(jí)索引庫(kù)同時(shí)提供索引服務(wù),并將從所述至少兩級(jí)索引庫(kù)得到的搜索列表進(jìn)行合并。
本發(fā)明實(shí)施例提供的方法中,將索引庫(kù)分為多層索引庫(kù),多層索引庫(kù)協(xié)同工作,實(shí)現(xiàn)在快速索引的同時(shí)還能提供高效實(shí)時(shí)的搜索服務(wù)。
附圖說明
圖1是本發(fā)明實(shí)施例中一種索引和搜索方法的流程示意圖。
圖2所示為本發(fā)明實(shí)施例中包含有主備切換的索引和搜索方法的流程示意圖。
圖3所示為本發(fā)明另一實(shí)施例中包含有主備切換的索引和搜索方法的流程示意圖。
圖4所示為本發(fā)明另一實(shí)施例中包含有主備切換的索引和搜索方法的流程示意圖。
圖5所示為本發(fā)明另一實(shí)施例中包含有主備切換的索引和搜索方法的流程示意圖。
圖6所示為本發(fā)明另一實(shí)施例中包含有主備切換的索引和搜索方法的流程示意圖。
圖7所示為本發(fā)明另一實(shí)施例中包含有主備切換的索引和搜索方法的流程示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
本發(fā)明實(shí)施例提供一種索引和搜索方法,通過建立至少兩個(gè)以上的索引庫(kù),由所述至少兩個(gè)以上的索引庫(kù)同時(shí)提供索引服務(wù),并將從所述至少兩個(gè)以上的索引庫(kù)得到的搜索列表進(jìn)行合并。其中,還可以進(jìn)一步為所述至少兩個(gè)以上的索引庫(kù)分別提供備份索引庫(kù),利用所述備份索引庫(kù)實(shí)現(xiàn)索引數(shù)據(jù)在所述至少兩個(gè)以上索引庫(kù)之間的轉(zhuǎn)移。
圖1是本發(fā)明實(shí)施例中一種索引和搜索方法的流程示意圖。如圖1所示,在本發(fā)明實(shí)施例中,將整個(gè)索引庫(kù)分為三層,分別為一級(jí)索引庫(kù)、二級(jí)索引庫(kù)和三級(jí)索引庫(kù),三層索引庫(kù)分別存儲(chǔ)不同的索引數(shù)據(jù),最終組成一個(gè)完整的索引庫(kù),當(dāng)有搜索操作時(shí),由三層索引庫(kù)同時(shí)提供搜索服務(wù),將三層索引庫(kù)中得到的搜索列表進(jìn)行合并,之后對(duì)列表中的文檔進(jìn)行統(tǒng)一評(píng)分和排序,將最終結(jié)果返回給用戶。
一級(jí)索引庫(kù),將索引數(shù)據(jù)存放到內(nèi)存當(dāng)中,也可稱之為內(nèi)存索引庫(kù),該內(nèi)存索引所存儲(chǔ)的索引數(shù)通常較少。在本發(fā)明一實(shí)施例中,可將內(nèi)存索引所存儲(chǔ)的索引量閾值設(shè)置在1萬。
由于內(nèi)存索引庫(kù)位于內(nèi)存中,減小了IO負(fù)荷,因此可以快速響應(yīng)索引/搜索操作。由于內(nèi)存索引庫(kù)中存放的索引數(shù)據(jù)是很少的,因此只會(huì)產(chǎn)生少量的索引分片,對(duì)搜索性能的影響可以忽略不計(jì)。同時(shí)由于內(nèi)存中的索引數(shù)據(jù)較少,因此產(chǎn)生一個(gè)新的搜索實(shí)例的開銷同樣很小,可以實(shí)時(shí)的產(chǎn)生新的搜索實(shí)例,保證搜索結(jié)果的實(shí)時(shí)性。
當(dāng)內(nèi)存索引庫(kù)中的索引數(shù)據(jù)達(dá)到閾值時(shí),自動(dòng)觸發(fā)事件,將內(nèi)存索引庫(kù)中的索引數(shù)據(jù)逐條寫入二級(jí)索引庫(kù),并將這些索引數(shù)據(jù)從內(nèi)存索引庫(kù)中刪除。二級(jí)索引庫(kù)的存儲(chǔ)的數(shù)據(jù)閾值比內(nèi)存索引庫(kù)稍大。在本發(fā)明一實(shí)施例中,可以設(shè)置為10萬左右的索引。
內(nèi)存索引庫(kù)將索引數(shù)據(jù)導(dǎo)入二級(jí)索引庫(kù)后,二級(jí)索引庫(kù)會(huì)進(jìn)行索引分片合并操作,保證二級(jí)索引庫(kù)不會(huì)存在索引分片,保證高效的搜索。
二級(jí)索引庫(kù)可以同時(shí)建立多個(gè)搜索實(shí)例來構(gòu)建搜索實(shí)例池提供高效的搜索響應(yīng),當(dāng)內(nèi)存索引庫(kù)將索引數(shù)據(jù)導(dǎo)入二級(jí)索引庫(kù)后更新池中所有搜索實(shí)例來保證數(shù)據(jù)的實(shí)時(shí)性。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于天津書生投資有限公司,未經(jīng)天津書生投資有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210466917.1/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫(kù)結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





