[发明专利]一种数据检索优化方法、装置和计算机设备有效
申请号: | 201811632444.1 | 申请日: | 2018-12-29 |
公开(公告)号: | CN111382323B | 公开(公告)日: | 2023-08-11 |
发明(设计)人: | 吴义谱;李文博;张炎泼 | 申请(专利权)人: | 贵州白山云科技股份有限公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903;G06F16/901 |
代理公司: | 北京名华博信知识产权代理有限公司 11453 | 代理人: | 白莹;苗源 |
地址: | 550003 贵州省贵阳市*** | 国省代码: | 贵州;52 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 检索 优化 方法 装置 计算机 设备 | ||
本发明提供了一种数据检测优化方法、装置和计算机设备。涉及数据存储领域,解决了现有的Trie树存储管理方式占用的存储空间非常大及影响查询索引效率的问题。该方法包括:按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树;查询当前匹配到的中间节点的可跳过的节点数;跳过所述可跳过的节点数,继续比较检索的字符串或字符串集合与所述前缀树;在存在与所述检索的字符串或字符串集合匹配的叶子节点时,返回所述叶子节点的数据。本发明提供的技术方案适用于前缀树存储,实现了低内存消耗、高检索效率的文件管理。
技术领域
本发明涉及数据存储领域,尤其涉及一种数据检索优化方法、装置和计算机设备。
背景技术
前缀树或者字典树(Trie树)是一种树形结构,多用于统计、索引和排序大量的字符串,所以经常被用于海量数据的内存索引和搜索引擎系统,对文本词频进行统计。它的优点是最大限度地减少无谓的字符串比较,查询效率比较高。
Trie树的核心思想是空间换时间,Trie适用于存在大量公共前缀的字符串,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。但通常使用标准Trie来做海量字符串的内存索引时内存消耗较大,索引效率低。
发明内容
本发明旨在解决上面描述的问题。
根据本发明的第一方面,提供了一种数据检索优化方法,包括:
按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树;
查询当前匹配到的中间节点的可跳过的节点数;
跳过所述可跳过的节点数,继续比较检索的字符串或字符串集合与所述前缀树;
在存在与所述检索的字符串或字符串集合匹配的叶子节点时,返回所述叶子节点的数据。
优选的,所述可跳过的节点数为:
在查找的字符串值指向单分支节点时,从单分支起始的节点至单分支结束的节点之间的节点数量。
优选的,按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树的步骤之前,还包括:
对原始前缀树的单分支节点进行裁剪;
创建位图数组,所述位图数组中的位图元素与所述原始前缀树中的中间节点一一对应,一个位图元素存储所述原始前缀树中一个中间节点的分支信息;
创建跳数数组,所述跳数数组中的元素与所述原始前缀树的中间节点一一对应,一个跳数数组中的元素存储所述原始前缀树中一个中间节点裁剪掉的从单分支起始的节点至单分支结束的节点之间的节点数量;
创建叶子节点数组,所述叶子节点数组中的元素与用户数据一一对应,一个叶子节点数组中的元素存储所述原始前缀树中一个索引字符串对应的文件位置。
优选的,查询当前匹配到的中间节点的可跳过的节点数的步骤包括:
根据当前匹配的中间节点查找所述跳数数组;
在所述中间节点对应的所述跳数数组中的元素存储有所述中间节点作为单分支起始的节点至单分支结束的节点之间的节点数量时,以所述节点数量作为可跳过的节点数。
优选的,所述跳数数组、位图数组和叶子节点数组的元素均为限制预设存储容量所能表示的最大数组元素个数。
优选的,所述限制预设存储容量为2byte。
根据本发明的另一方面,还提供了一种数据检索优化装置,包括:
跳数匹配模块,用于查询当前匹配到的中间节点的可跳过的节点数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贵州白山云科技股份有限公司,未经贵州白山云科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811632444.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置