一种面向字符串数据的学习索引构建方法、装置和介质

文档序号:37932376发布日期:2024-05-11 00:11阅读:16来源:国知局
一种面向字符串数据的学习索引构建方法、装置和介质

本发明涉及数据索引,尤其涉及一种面向字符串数据的学习索引构建方法、装置和介质。


背景技术:

1、学习索引模型是指将索引视作模型,这个模型提供了数据到其位置的映射。目前在数值型学习索引设计方案中,通常在每个节点内使用比较简单的线性模型来计算查找键的大致位置。然而字符串相对于数值具有较大的实体且长度各异,在计算机中以字节数组的形式存储,这增加了模型计算的复杂性也增加了模型参数的个数,索引结构空间代价大。同时,由于会存在相同的前缀和子字符串,字符串数据通常比数值数据具有更不规则的分布,当使用简单的线性模型时,得到的位置不够精确,导致需要在一个较大的范围内进行搜索,索引效率低。

2、综上,相关技术中存在的技术问题有待得到改善。


技术实现思路

1、本发明实施例提供了一种面向字符串数据的学习索引构建方法、装置和介质,有效地提高了索引效率,降低了索引结构空间代价。

2、一方面,本发明实施例提供了一种面向字符串数据的学习索引构建方法,包括以下步骤:

3、获取第一字符串数据;

4、以预设字节数量个的字节为单位,对所述第一字符串数据进行划分,得到若干个第一子字符串;

5、对若干个所述第一子字符串进行编码,得到对应的第一编码整数;

6、根据所述第一编码整数在所述第一字符串数据划分中的顺序序号,通过逐层索引查找对应的索引层;

7、在所述索引层中,创建初始子节点数组;

8、将所述第一编码整数插入到所述初始子节点数组,得到所述待训练子节点数组;

9、将所述待训练子节点数组中的所述第一编码整数输入第一预设学习索引模型,以使所述第一预设学习索引模型进行训练,得到所述待训练子节点数组对应的第一目标学习索引模型,所述第一目标学习索引模型用于对目标字符串数据进行索引。

10、在一些实施例中,所述对若干个所述第一子字符串进行编码,得到对应的第一编码整数,包括:

11、根据预设编码规则,对若干个所述第一子字符串中的每个字符进行转换,得到对应的转换码;

12、将多项所述转换码进行组合,计算所述第一编码整数。

13、在一些实施例中,所述方法还包括:

14、获取待查找字符串数据;

15、根据所述待查找字符串数据,计算待查找子字符串在对应的第一子节点数组中的存放位置;

16、若所述存放位置的数组元素类型为同层指针,则根据第一同层指针,查找所述第一同层指针指向的第二子节点数组,所述第二子节点数组用于通过逐层索引查找所述待查找字符串数据对应的值;

17、若所述存放位置的数组元素类型为下层指针,则根据第一下层指针,查找所述第一下层指针指向的第三子节点数组,所述第三子节点数组用于通过逐层索引查找所述待查找字符串数据对应的值;

18、若所述存放位置的数组元素类型为数据值,则得到所述待查找字符串数据对应的值。

19、在一些实施例中,所述根据所述待查找字符串数据,计算待查找子字符串在对应的第一子节点数组中的存放位置,包括:

20、以所述预设字节数量个的字节为单位,对所述待查找字符串数据进行划分,得到若干个所述待查找子字符串;

21、对若干个所述待查找子字符串进行编码,得到对应的所述待查找编码整数;

22、将所述待查找编码整数输入所述第一子节点数组的目标学习索引模型,计算所述待查找子字符串在对应的所述第一子节点数组中的存放位置。

23、在一些实施例中,所述方法还包括:

24、获取待插入字符串数据和所述待插入字符串数据对应的值;

25、以所述预设字节数量个的字节为单位,对所述待插入字符串数据进行划分,得到若干个待插入子字符串;

26、对若干个所述待插入子字符串进行编码,得到对应的待插入编码整数;

27、将所述待插入编码整数输入第四子节点数组的目标学习索引模型,计算所述待插入子字符串在对应的第四子节点数组中的存放位置;

28、若所述存放位置的数组元素类型为数据值,则对所述第四子节点数组进行冲突处理,得到第五子节点数组;

29、若所述存放位置的数组元素类型为同层指针,则根据第二同层指针,查找所述第二同层指针指向的第六子节点数组,所述第六子节点数组用于通过逐层索引查找所述待插入字符串数据对应的值的插入位置;

30、若所述存放位置的数组元素类型为下层指针,则判断所述待插入子字符串与第二下层指针对应的指针子字符串是否相同;

31、若所述待插入子字符串与所述第二下层指针对应的指针子字符串相同,则查找所述第二下层指针指向的第七子节点数组,所述第七子节点数组用于通过逐层索引查找所述待插入字符串数据对应的值的插入位置;

32、若所述待插入子字符串与所述第二下层指针对应的指针子字符串不相同,则对所述第四子节点数组进行新增同层处理,得到第八子节点数组;

33、若所述存放位置的数组元素类型为空,则将所述待插入字符串数据和所述待插入字符串数据对应的值插入到所述存放位置。

34、在一些实施例中,所述对所述第四子节点数组进行冲突处理,得到第五子节点数组,包括:

35、创建冲突子节点数组;

36、将所述存放位置的数据值和所述待插入字符串数据对应的值插入到所述冲突子节点数组,得到第九子节点数组;

37、将所述待插入编码整数和所述存放位置的数据值对应的编码整数输入第二预设学习索引模型,以使所述第二预设学习索引模型进行训练,得到第二目标学习索引模型;

38、将所述第二目标学习索引模型增加到所述第九子节点数组,得到所述第五子节点数组;

39、在所述第四子节点数组中创建第三同层指针,所述第三同层指针用于指向所述第五子节点数组。

40、在一些实施例中,所述对所述第四子节点数组进行新增同层处理,得到第八子节点数组,包括:

41、创建同层子节点数组;

42、将所述第二下层指针和所述待插入字符串数据对应的值插入到所述同层子节点数组,得到第十子节点数组;

43、将所述待插入编码整数和所述存放位置的数据值对应的编码整数输入第三预设学习索引模型,以使所述第三预设学习索引模型进行训练,得到第三目标学习索引模型;

44、将所述第三目标学习索引模型增加到所述第十子节点数组,得到所述第八子节点数组;

45、在所述第四子节点数组中创建第四同层指针,所述第四同层指针用于指向所述第八子节点数组。

46、另一方面,本发明实施例提供了一种面向字符串数据的学习索引构建装置,包括:

47、第一模块,用于获取第一字符串数据;

48、第二模块,用于以预设字节数量个的字节为单位,对所述第一字符串数据进行划分,得到若干个第一子字符串;

49、第三模块,用于对若干个所述第一子字符串进行编码,得到对应的第一编码整数;

50、第四模块,用于根据所述第一编码整数在所述第一字符串数据划分中的顺序序号,通过逐层索引查找对应的索引层;

51、第五模块,用于在所述索引层中,创建初始子节点数组;

52、第六模块,用于将所述第一编码整数插入到所述初始子节点数组,得到所述待训练子节点数组;

53、第七模块,用于将所述待训练子节点数组中的所述第一编码整数输入第一预设学习索引模型,以使所述第一预设学习索引模型进行训练,得到所述待训练子节点数组对应的第一目标学习索引模型,所述第一目标学习索引模型用于对目标字符串数据进行索引。

54、另一方面,本发明实施例提供了一种面向字符串数据的学习索引构建装置,包括:

55、至少一个处理器;

56、至少一个存储器,用于存储至少一个程序;

57、当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的方法。

58、另一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的方法。

59、本发明所具有的有益效果如下:

60、本发明首先获取第一字符串数据,对第一字符串数据进行划分,得到若干个第一子字符串,进行编码后,得到对应的第一编码整数,然后根据第一编码整数的顺序序号,查找对应的索引层,再创建初始子节点数组,将第一编码整数插入到初始子节点数组,得到待训练子节点数组,最后将第一编码整数输入第一预设学习索引模型进行训练,得到第一目标学习索引模型,从而可以通过第一目标学习索引模型对目标字符串数据进行索引,进而实现了字符串数据索引,提高了索引效率,降低了索引结构空间代价。

61、本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1