[發(fā)明專利]一種基于字符串后綴的數(shù)據(jù)索引方法有效
| 申請?zhí)枺?/td> | 201710432310.4 | 申請日: | 2017-06-09 |
| 公開(公告)號: | CN107291858B | 公開(公告)日: | 2021-06-08 |
| 發(fā)明(設(shè)計(jì))人: | 吳春中;張浩陽 | 申請(專利權(quán))人: | 成都索貝數(shù)碼科技股份有限公司 |
| 主分類號: | G06F16/31 | 分類號: | G06F16/31;G06F16/33 |
| 代理公司: | 成都金英專利代理事務(wù)所(普通合伙) 51218 | 代理人: | 袁英 |
| 地址: | 610041 四*** | 國省代碼: | 四川;51 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 字符串 后綴 數(shù)據(jù) 索引 方法 | ||
1.一種基于字符串后綴的數(shù)據(jù)索引方法,包括創(chuàng)建索引步驟和數(shù)據(jù)索引步驟,其特征在于:所述創(chuàng)建索引步驟包括以下子步驟:
S1:寫入數(shù)據(jù),并提取元數(shù)據(jù)、行ID、 添加字符串后綴;
所述的步驟S1寫入數(shù)據(jù)包括以下子步驟:
S11:修改或插入新數(shù)據(jù)形成新表,開啟事務(wù)鎖,鎖定新表,避免臟數(shù)據(jù);
S12:將新表數(shù)據(jù)同步到舊表,新表和舊表之間通過時間戳保證數(shù)據(jù)一致性;
S13:將更新的數(shù)據(jù)拷貝到索引緩存區(qū),并提取元數(shù)據(jù)、行ID、添加字符串后綴;
所述的索引緩存區(qū)的數(shù)據(jù)結(jié)構(gòu)如下:
索引緩存區(qū)的每一條數(shù)據(jù)都由元數(shù)據(jù)、行ID和數(shù)據(jù)內(nèi)容構(gòu)成;
元數(shù)據(jù):包括時間戳、索引+長度;時間戳用于判斷索引緩存區(qū)的數(shù)據(jù)與原始數(shù)據(jù)是否相同,若不相同則同步數(shù)據(jù);索引+長度可以確定索引的詞組;
行ID:記錄該條數(shù)據(jù)的行ID,相同的詞組可能出現(xiàn)在不同的數(shù)據(jù)中,行ID作為數(shù)據(jù)條目的區(qū)分;
數(shù)據(jù)內(nèi)容:包括數(shù)據(jù)內(nèi)容及字符串后綴,以字符為單位加5個字符或6個字符的字符串后綴,字符串后綴用于排列組合進(jìn)行分詞建立索引;
S2:建立索引,基于字符串后綴對所有字符進(jìn)行排列組合分詞并對分詞進(jìn)行排序,利用B+樹算法構(gòu)建索引;
所述的步驟S2建立索引包括以下子步驟:
S21:基于字符串后綴采用后綴排序算法對這條數(shù)據(jù)的所有字符進(jìn)行排列組合分詞;
S22:按拼音+編碼的方式計(jì)算分詞的數(shù)值并進(jìn)行排序;
S23:將排好的序列利用B+樹算法構(gòu)建索引,其中B+樹的分支節(jié)點(diǎn)保存下級節(jié)點(diǎn)范圍數(shù)組,B+樹的葉子節(jié)點(diǎn)保存索引緩存區(qū)指針列表數(shù)組;
S3:事務(wù)判斷,對寫入數(shù)據(jù)事務(wù)進(jìn)行判定,若寫入成功則解開事務(wù)鎖;若寫入失敗,則進(jìn)邏輯刪除并回收數(shù)據(jù);
所述數(shù)據(jù)索引步驟包括以下子步驟:
S01:索引匹配,計(jì)算索引對應(yīng)的編碼數(shù)值并將該編碼數(shù)值在B+樹中匹配;其中,所述的步驟S01索引匹配具體包括根據(jù)索引和長度計(jì)算該索引對應(yīng)的編碼數(shù)值,將計(jì)算出的編碼數(shù)值在B+樹中匹配;
S02:獲取索引指針列表,在B+樹中快速定位到索引的編碼數(shù)值,該數(shù)值的葉子節(jié)點(diǎn)即為包含該索引關(guān)鍵字的索引指針列表;
S03:讀取數(shù)據(jù),根據(jù)索引指針數(shù)組找到索引結(jié)果,對索引結(jié)果進(jìn)行判斷,若索引緩存區(qū)的時間戳與原始數(shù)據(jù)的時間戳一致,則直接返回結(jié)果;若不一致,則讀取原始數(shù)據(jù)的值,并將原始數(shù)據(jù)同步給索引緩存區(qū),更新索引;
其中,所述的步驟S03讀取數(shù)據(jù)包括:根據(jù)索引指針數(shù)組指向的行ID,到索引緩存區(qū)的索引結(jié)果;對索引緩存區(qū)的索引結(jié)果進(jìn)行判斷,若索引緩存區(qū)的時間戳與原始數(shù)據(jù)的時間戳一致,則直接返回結(jié)果;若不一致,則讀取原始數(shù)據(jù)的值,并將原始數(shù)據(jù)同步給索引緩存區(qū),更新索引。
2.根據(jù)權(quán)利要求1所述的一種基于字符串后綴的數(shù)據(jù)索引方法,其特征在于:所述的步驟S02獲取索引指針列表具體包括,B+樹的分支節(jié)點(diǎn)表示其下級節(jié)點(diǎn)的編碼數(shù)值范圍,依次對范圍進(jìn)行判定,快速定位到索引的編碼數(shù)值,該數(shù)值的葉子節(jié)點(diǎn)即為包含該索引關(guān)鍵字的索引指針列表。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于成都索貝數(shù)碼科技股份有限公司,未經(jīng)成都索貝數(shù)碼科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710432310.4/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- Turbo碼的初始態(tài)估計(jì)及子幀譯碼方法、裝置
- 一種廣義后綴樹快速遍歷的方法及系統(tǒng)
- 后綴數(shù)組的構(gòu)造方法及裝置
- 一種獲取域名后綴的方法及裝置
- 重復(fù)代碼片段查詢方法和裝置
- 一種紙塑制品的后綴生產(chǎn)和檢測自動化生產(chǎn)線
- 一種差分包文件生成方法、中斷恢復(fù)方法和相關(guān)裝置
- 一種文本后綴索引的分塊歸納排序方法及系統(tǒng)
- 一種數(shù)據(jù)報(bào)告命名方法、裝置、電子設(shè)備和存儲介質(zhì)
- 構(gòu)造后綴數(shù)組的方法、終端設(shè)備及計(jì)算機(jī)可讀存儲介質(zhì)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置





