[發明專利]一種基于字符串后綴的數據索引方法有效
| 申請號: | 201710432310.4 | 申請日: | 2017-06-09 |
| 公開(公告)號: | CN107291858B | 公開(公告)日: | 2021-06-08 |
| 發明(設計)人: | 吳春中;張浩陽 | 申請(專利權)人: | 成都索貝數碼科技股份有限公司 |
| 主分類號: | G06F16/31 | 分類號: | G06F16/31;G06F16/33 |
| 代理公司: | 成都金英專利代理事務所(普通合伙) 51218 | 代理人: | 袁英 |
| 地址: | 610041 四*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 字符串 后綴 數據 索引 方法 | ||
本發明公開了一種基于字符串后綴的數據索引方法,包括創建索引步驟和數據索引步驟,所述創建索引步驟包括以下子步驟:S1:寫入數據,并提取元數據、行ID、添加字符串后綴;S2:建立索引;S3:事務判斷,對寫入數據事務進行判定,若寫入成功則解開事務鎖;若寫入失敗,則進行邏輯刪除并回收數據;所述數據索引步驟包括以下子步驟S01:索引匹配;S02:獲取索引指針列表,在B+樹中快速定位到索引的編碼數值,該數值的葉子節點即為包含該索引關鍵字的索引指針列表;S03:讀取數據,根據索引指針數組找到索引結果。本發明從非拉丁語系的語言體系出發,以字符為單位利用字符串后綴排序算法以及B+樹算法構建索引,解決模糊查詢的效率和準確度問題。
技術領域
本發明涉及數據索引領域,具體涉及一種基于字符串后綴的數據索引方法。
背景技術
就目前而言,數據模糊查詢的方法主要有以下三種:
通過數據庫自身提供的“like”模糊匹配查詢功能。
這種方式雖然簡單易用,但是無法用到索引。數據量不大時,還可以承受;但數據量稍大,查詢的速度就非常慢了,難以滿足融合媒體時代的需求。
通過數據庫的擴展功能,如利用DB全文索引(如mysql中提供的fulltext match函數)。
這種方式的缺點主要源于國內外語言文化的差異,在中文分詞上存在很大缺陷,不能很好地支持中文字符的檢索。雖然有些國內人士通過開發相應的插件滿足了中文檢索的需求,但是在以下兩種情況下卻表現出了索引滯后性:一方面,為避免檢索過程中出現漏數據、數據不準確的情況,需要人為干預維護索引庫;另外,由于詞庫是基于分詞的,在執行不具有明顯詞義的查詢時,無法檢索到想要的數據。
通過第三方平臺提供全文檢索的功能,如:Lucene、Solr。
這種方式不僅存在第二種方式的問題,索引更新延遲較長、無法做到事務一致性等問題,而且搭建非常復雜。
發明內容
本發明的目的在于克服現有技術的不足,提供一種基于字符串后綴的數據索引方法,該方法從非拉丁語系的語言體系出發,以字符為單位利用字符串后綴排序算法以及B+樹算法構建索引,解決模糊查詢的效率和準確度問題。
本發明的目的是通過以下技術方案來實現的:
一種基于字符串后綴的數據索引方法,包括創建索引步驟和數據索引步驟,所述創建索引步驟包括以下子步驟:
S1:寫入數據,并提取元數據、行ID、添加字符串后綴;
S2:建立索引,基于字符串后綴對所有字符進行排列組合分詞并對分詞進行排序,利用B+樹算法構建索引;
S3:事務判斷,對寫入數據事務進行判定,若寫入成功則解開事務鎖;若寫入失敗,則進行邏輯刪除并回收數據;
所述數據索引步驟包括以下子步驟
S01:索引匹配,計算索引對應的編碼數值并將該編碼數值在B+樹中匹配;
S02:獲取索引指針列表,在B+樹中快速定位到索引的編碼數值,該數值的葉子節點即為包含該索引關鍵字的索引指針列表;
S03:讀取數據,根據索引指針數組找到索引結果,對索引結果進行判斷,若索引緩存區的時間戳與原始數據的時間戳一致,則直接返回結果;若不一致,則讀取原始數據的值,并將原始數據同步給索引緩存區,更新索引。
進一步的,所述的步驟S1寫入數據包括以下子步驟:
S11:修改或插入新數據形成新表,開啟事務鎖,鎖定新表,避免臟數據;
S12:將新表數據同步到舊表,新表和舊表之間通過時間戳保證數據一致性;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都索貝數碼科技股份有限公司,未經成都索貝數碼科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710432310.4/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





