[发明专利]存储和查询数据的方法、装置、设备和介质在审
申请号: | 201910147197.4 | 申请日: | 2019-02-27 |
公开(公告)号: | CN109918472A | 公开(公告)日: | 2019-06-21 |
发明(设计)人: | 王杰;伍检 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F16/31 | 分类号: | G06F16/31;G06F16/33;G06F16/36 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 李辉 |
地址: | 100094 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一级索引 索引 写入 存储 查询数据 二级索引 知识库 存储数据 实体数据 数据查询 数据行 查询 更新 | ||
1.一种用于存储数据的方法,包括:
针对待存储的数据,生成用于索引所述数据的一级索引;
将所述一级索引和所述数据写入到数据表中的数据行中;
基于所述数据表的查询规则和所述数据,生成用于索引所述一级索引的二级索引;以及
将所述二级索引和所述一级索引写入到所述数据表中的索引行中。
2.根据权利要求1所述的方法,其中所述数据记录与知识库中的实体有关的信息,并且生成所述一级索引包括:
从所述数据中获取所述实体的标识符;以及
基于所述实体的所述标识符,来生成所述一级索引。
3.根据权利要求1所述的方法,其中将所述一级索引和所述数据写入到所述数据行中包括:
将所述一级索引作为所述数据行的键写入到所述数据行中;以及
将所述数据作为所述数据行的值写入到所述数据行中。
4.根据权利要求1所述的方法,其中生成所述二级索引包括:
获取所述数据表的索引配置信息,所述索引配置信息指示所述数据表的所述查询规则;以及
基于所述索引配置信息和所述数据,来生成所述二级索引。
5.根据权利要求1所述的方法,其中所述数据表用于存储知识库中的实体的一个或多个属性值、和/或所述实体与一个或多个对象之间的相应关系,并且所述查询规则包括以下至少一项:
查询具有特定属性值的实体;
查询与特定对象具有特定关系的实体;
查询特定实体与特定对象之间的出边关系;
查询特定实体与特定对象之间的入边关系;
查询与特定实体有关的数据;
查询具有特定出边关系的实体;以及
查询具有特定入边关系的实体。
6.根据权利要求1所述的方法,其中生成所述二级索引包括:
确定所述数据表的起始主键;以及
通过将所述起始主键作为所述二级索引的前缀,来生成所述二级索引。
7.根据权利要求1所述的方法,其中将所述二级索引和所述一级索引写入到所述索引行中包括:
将所述二级索引作为所述索引行的键写入到所述索引行中;以及
将所述一级索引作为所述索引行的值写入到所述索引行中。
8.根据权利要求1所述的方法,还包括:
响应于接收到更新存储在所述数据行中的所述数据的请求,更新所述数据;
基于经更新的数据和所述查询规则,生成用于索引所述一级索引的新二级索引;以及
将所述新二级索引和所述一级索引写入到所述数据表中的另一索引行中。
9.根据权利要求1所述的方法,还包括:
将所述数据表存储到利用第一存储介质实现的存储装置中;
将所述索引行缓存到利用第二存储介质实现的一级缓存中;以及
将所述数据行缓存到利用第三存储介质实现的二级缓存中。
10.根据权利要求9所述的方法,其中所述第二存储介质的访问速度超过所述第三存储介质的访问速度,并且所述第三存储介质的所述访问速度超过所述第一存储介质的访问速度。
11.一种用于查询数据的方法,包括:
响应于接收到针对数据表中存储的数据的查询请求,从所述数据表的一个或多个索引行中确定与所述查询请求相匹配的索引行,所述索引行存储用于索引所述数据的一级索引和用于索引所述一级索引的二级索引;
基于所述索引行中的所述一级索引,从所述数据表的一个或多个数据行中确定与所述索引行相关联的数据行,所述数据行存储所述一级索引和所述数据;
确定所述索引行与所述数据行是否匹配;以及
响应于确定所述索引行与所述数据行匹配,从所述数据行中获取所述数据,以作为对所述查询请求的响应。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910147197.4/1.html,转载请声明来源钻瓜专利网。