兴趣点属性的索引数据库的生成方法和装置的制作方法

文档序号:6151239阅读:161来源:国知局
专利名称:兴趣点属性的索引数据库的生成方法和装置的制作方法
技术领域
本发明涉及数据库领域,特别是指一种兴趣点属性的索引数据库的生成方 法和装置。
背景技术
现有技术中,为了提高对兴趣点数据库的检索性能,采用倒排索引技术建
立索引机制。兴趣点(POI, Point of Interest)是导航电子地图上有特定位置和 属性的点位。兴趣点数据库,则是管理大量兴趣点的属性的系统。兴趣点数据 库有一个相应的索引数据库,为兴趣点索引数据库。索引是海量数据库不可缺 少的,这是因为索引从某种意义上是一种将原数据库按^f企索要求排序后的数据 库,它的存在能够大大提高检索的效率。兴趣点属性可以为兴趣点的名称、地 址信息等。兴趣点属性由文字单元组成,文字单元可以为汉字或拼音。也就是 说,兴趣点属性的表示方法可以分为两种, 一种以是以汉字为主的形式表示, 同时可以包括少量字母、数字、符号等,我们称其为汉字属性,例如兴趣点 l:(编号100,名称"东方商厦A" },其中"东"、"方"、"A"为最小组成元 素。另一种以拼音的形式表示,同时可以包括少量字母、数字、符号等,我们 称其为拼音属性,例如兴趣点1: {编号100,名称"dong fang shang sha A" }, 其中"dong"、 "fang"、 "A,,为最小组成元素。
以下描述采用倒排技术创建兴趣点属性的索引数据库的方法。通常仅知道 汉字在哪些兴趣点中出现还不够,还需要知道汉字在兴趣点中出现的次数和出 现的位置,索引结构如下
关键字(兴趣点1编号,出现频率,[位置l,位置2, ...]},
(兴趣点2编号,出现频率,[位置l,位置2, ...]},...
假设有三个兴趣点,其编号和兴趣点名称如下
5兴趣点1:{编号100,名称"东方商厦"} 兴趣点2:(编号120,名称"浦东新区东方路") 兴趣点3:(编号150,名称"浦东新区东明路") 按照前面介绍的索引结构,相应建立的倒排索引如下 "东,,{濯,1,
},{120,2,[1, 4]} ,{150,2,[1, 4]} "方,,{100,1,[1]}, {120,1,[5]} "商"{100,1,[2]} "厦"{100,1,[3]} "浦,,{120, 1,
} ,{150, 1,
} "新"{120, 1,[2]} ,{150, 1,[2]} "区,,{120, 1,[3]} ,{150, 1,[3]} "明,,{150,1,[5]} "路"{120, 1,[6]} ,{150, 1,[6]} 以下描述倒排表检索技术。检索时,假设待查汉字串为"东方路",首先 通过汉字列表定位各汉字的索引数据,然后对数据进行分析。
"东"的索引数据中含有兴趣点编号为{100, 120, 150};"方,,的索引数 据中含有兴趣点编号为{100, 120};"路"的索引数据中含有兴趣点编号为 {120, 150}。取交集后,只有兴趣点编号为120的记录符合条件。
"东"在兴趣点编号为120的记录中的位置为[l, 4],其中位置"4"与 "方,,在兴趣点编号为120的记录中的位置"5"的差值刚好是汉字"东"的 长度。同样"方"和"路"在兴趣点编号为120的记录中的位置差值刚好是汉 字"方"的长度。因此兴趣点编号120(其名称为"浦东新区东方路,,)为一 个命中兴趣点。
以上可知,倒排表模型创建索引的速度较快,可以解决兴趣点属性的高效 检索功能。但是,倒排索引结构包括兴趣点编号,兴趣点名称索引数据库需要 存储大规模的文本信息,特别是需要存储兴趣点名称的位置信息,空间开销也 比较大。

发明内容
本发明要解决的技术问题是提供一种减少空间开销的兴趣点属性的索引 数据库的生成方法和装置。
为解决上述技术问题,本发明的实施例提供技术方案如下 一方面,提供一种兴趣点属性的索引数据库的生成方法,包括 统计所述兴趣点属性中出现的不同文字单元; 获取所述文字单元的编码;
查找包含所述文字单元的兴趣点属性以及所述文字单元在所述兴趣点属 性中的位置;
根据所述兴趣点属性对应的兴趣点编号之间差值的大小以及所述文字单 元在所述兴趣点属性中的位置,生成所述文字单元的索引记录列表;
根据所述文字单元的索引记录列表的长度,生成所述文字单元索引记录列 表的地址信息;
组合所述文字单元的编码、所述文字单元的索引记录列表、所述文字单元 的索引记录列表的地址信息,生成所述兴趣点属性的索引数据库。
所述根据所述兴趣点属性对应的兴趣点编号之间差值的大小以及所述文 字单元在所述兴趣点属性中的位置,生成所述文字单元的索引记录列表的步骤 包括
依次获取包含所述文字单元的兴趣点属性作为当前兴趣点属性;
判断所述文字单元在当前兴趣点属性中是否为第一次出现,且所述当前兴
趣点属性是否为包括所述文字单元的兴趣点编号最小的兴趣点属性,生成判断
结果;
才艮据所述判断结果,生成所述文字单元的索引记录; 组合所述文字单元的索引记录,生成所述文字单元的索引记录列表。 所述根据所述判断结果,生成所述文字单元的索引记录的步骤包括 当所述判断结果为所述文字单元在所述当前兴趣点属性中为第一次出 现,且所述当前兴趣点属性为包括所述文字单元的兴趣点编号最小的兴趣点属 性时,生成的所述文字单元的索引记录包括第一索引记录类型标识和所述当前兴趣点编号以及所述文字单元在所述当前兴趣点属性的位置;
当所述判断结果为所述文字单元在所述当前兴趣点属性中不是第一次出 现,生成的所述文字单元的索引记录包括第二索引记录类型标识、所述文字 单元在所述当前兴趣点属性的位置;
当所述判断结果为所述文字单元在所述当前兴趣点属性中为第一次出 现,且所述当前兴趣点属性不是包括所述文字单元的兴趣点编号最小的兴趣点 属性时,则计算所述当前兴趣点编号与上一条兴趣点编号之间的差值,根据所 述差值的大小选择相应字节长度的索引记录类型,生成所述文字单元的索引记 录。
所述根据所述差值的大小选择相应字节长度的索引记录类型,生成所述文 字单元的索引记录的步骤具体为
当所述文字单元的当前兴趣点编号与上一条兴趣点编号之间的差值为大 于零且小于预定值时,所述文字单元的索引记录包括第三索引记录类型标识、 所述差值、所述文字单元在所述当前兴趣点属性的位置;
当所述文字单元的当前兴趣点编号与所述上一条兴趣点编号之间的差值 大于或等于所述预定值,所述文字单元的索引记录包括第四索引记录类型标 识、所述当前兴趣点编号、所述文字单元在所述当前兴趣点属性的位置。
所述查找包含所述文字单元的兴趣点属性以及所述文字单元在所述兴趣 点属性中的位置的步骤之前,还包括对所述文字单元的编码进行排序;
所述查找包含所述文字单元的兴趣点属性以及所述文字单元在所述兴趣 点属性中的位置的步骤具体为
依次查找包含所述文字单元的兴趣点属性以及所述文字单元在所述兴趣 点属性中的位置。
所述文字单元为汉字或拼音。
当所述文字单元为汉字时,所述获取所述文字单元的编码的步骤具体为
按照汉字编码方式,获得所述汉字的编码;或
对所述汉字进行顺序编号,将所述汉字的编号作为所述汉字的编码。
当所述文字单元为拼音时,所述获取所述文字单元的编码的步骤具体为对所述拼音进行顺序编号,将所述拼音的编号作为所述拼音的编码。
另一方面,提供一种兴趣点属性的索引数据库的生成装置,包括 统计单元,用于统计所述兴趣点属性中出现的不同文字单元; 获取单元,用于获取所述文字单元的编码;
查找单元,用于查找包含所述文字单元的兴趣点属性以及所述文字单元在 所述兴趣点属性中的位置;
索引记录列表生成单元,用于根据所述兴趣点属性对应的兴趣点编号之间 差值的大小以及所述文字单元在所述兴趣点属性中的位置,生成所述文字单元 的索引记录列表;
地址信息生成单元,用于根据所述文字单元的索引记录列表的长度,生成 所述文字单元的索S1记录列表的地址信息;
组合单元,用于组合所述文字单元的编码、所述文字单元的索引记录列表、 所述文字单元的索引记录列表的地址信息,生成所述兴趣点属性的索引数据 库。
所述的兴趣点属性的索引数据库的生成装置,还包括排序单元,用于对 所述文字单元的编码进行排序;
所述查找单元依次查找包含所述文字单元的兴趣点属性以及所述文字单 元在所述兴趣点属性中的位置。
本发明的实施例具有以下有益效果
上述方案中,由于索引记录列表是根据兴趣点编号之间的差值生成的,兴 趣点编号之间的差值比兴趣点编号的数值要小,因此兴趣点编号之间的差值占 用的字节比兴趣点编号占用的字节要少,因此能够减少索引数据库的空间开 销。


图1为本发明所述的兴趣点属性的索引数据库的生成方法的一实施例的 流程示意图2为本发明所述的兴趣点属性的索引数据库的生成方法的另一实施例的流程示意图3为本发明所述的兴趣点属性的索引数据库的生成方法的另一实施例 的流程示意图4为本发明所述的兴趣点属性的索引数据库的生成方法的应用场景的 流程示意图5为图4所示的应用场景中步骤41的流程示意图; 图6为图4所示的应用场景中步骤42的流程示意图; 图7为图4所示的应用场景中兴趣点属性的索引数据库的结构图; 图8为图4所示的应用场景中步骤43的流程示意图; 图9为图4所示的应用场景中将索引记录转换为类型1的示意图; 图IO为类型1的索引记录的数据结构示意图; 图11为图4所示的应用场景中将索引记录转换为类型2的示意图; 图12为类型2的索引记录的数据结构示意图; 图13为图4所示的应用场景中将索引记录转换为类型3的示意图; 图14为类型3的索引记录的数据结构示意图; 图15为图4所示的应用场景中将索引记录转换为类型4的示意图; 图16为类型4的索引记录的数据结构示意图; 图17为图4所示的应用场景中步骤44的流程示意图; 图18为图4所示的应用场景中步骤45的流程示意图; 图19为本发明所述的兴趣点属性的索引数据库的生成装置的一实施例的 结构示意图20为本发明所述的兴趣点属性的索引数据库的生成装置的另一实施例 的结构示意图。
具体实施例方式
为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面 将结合附图及具体实施例进行详细描述。
本发明的实施例针对现有技术中兴趣点属性的索引数据库的空间开销比
10较大的问题,提供一种兴趣点属性的索引数据库的生成方法和装置。
如图1所示,为本发明的兴趣点属性的索引数据库的生成方法的一实施
例,包括
步骤11,统计所述兴趣点属性中出现的不同文字单元。当同一个文字单 元在同一兴趣点属性中再次出现,则不再统计,当同一个文字单元在不同兴趣 点属性中再次出现,也不再统计。文字单元可以为汉字或拼音。例如,兴趣点 1: {编号100,名称"东方商厦"}中,文字单元分别为"东""方""商" "厦"。
步骤12,获取所述文字单元的编码。
步骤13,查找包含所述文字单元的兴趣点属性以及所述文字单元在所述 兴趣点属性中的位置;例如,兴趣点l: {编号100,名称"东方商厦"}中, "东"的兴趣点编号为100,在兴趣点属性中的位置为"0",而"方"在兴趣 点1的位置为"1",以此类推。
步骤14,根据所述兴趣点属性对应的兴趣点编号之间差值的大小以及所 述文字单元在所述兴趣点属性中的位置,生成所述文字单元的索引记录列表。
步骤15,根据所述文字单元的索引记录列表的长度,生成所述文字单元 的索引记录列表的地址信息。
步骤16,组合所述文字单元的编码、所述文字单元的索引记录列表、所 述文字单元的索引记录列表的地址信息,生成所述兴趣点属性的索引数据库。
上述方案中,由于文字单元的索引记录列表是根据兴趣点编号之间的差值 生成的,兴趣点编号之间的差值比兴趣点编号的数值要小,因此兴趣点编号之 间的差值占用的字节比兴趣点编号占用的字节要少,因此能够减少兴趣点属性 的索引数据库的空间开销。
如图2所示,为兴趣点属性的索引数据库的生成方法另一实施例,该实施 例以兴趣点属性为汉字属性为例进行描述。所述方法包括
步骤21,统计所述兴趣点属性中出现的不同汉字。当同一个汉字在同一 兴趣点属性中再次出现,则不再统计。当同一个汉字在不同兴趣点属性中再次 出现,也不再统计。本领域技术人员可以明白,对其他少量的字母、数字、符号也可以统计,进行索引。此实施例中,为了减少数据库的存储空间,对其他
少量的字母、数字、符号可以不统计,不进行索引。例如,兴趣点l: {编号 100,名称"东方商厦A" }和兴趣点2:{编号101,名称"东方喜羊羊"} 中,统计的不同汉字分别为"东"、"方"、"商"、"厦""喜,,"羊"。对"A"可 以不进行索引。由于兴趣点2中的"东"、"方"已经在兴趣点l中出现过,因 此不进行第二次统计,同理,"羊"在兴趣点2中出现了两次,因此只统计一 次。
步骤22,获取所述汉字的编码。具体来讲,可以按照GB2312、 GBK、 Unicode或UTF-8等汉字编码方式,对所述汉字进行编码。也可以为,对所述 汉字进行编号,将所述汉字的编号作为所述汉字的编码。例如,分别将"东,, "方""商""厦"编号为1、 2、 3、 4,将l、 2、 3、 4分别作为"东""方" "商""厦"的编码。这种编号的编码方式比上述的汉字编码方式占用的存储 空间小。
步骤23,对所述汉字的编码进行排序。具体来讲,可以按照GB2312、 GBK、 Unicode、 UTF-8等汉字编码顺序,对所述汉字的编码进行排序。也可 以为,按照汉字编号大小顺序,对所述汉字的编码进行排序。
步骤24,依次查找包含所述汉字的兴趣点属性以及所述汉字在所述兴趣 点属性中的位置。例如,例如兴趣点l: {编号100,名称"东方商厦A" } 中,汉字"方"的位置为2。
步骤25,依次获取包含所述汉字的兴趣点属性作为当前兴趣点属性。
步骤26,判断所述汉字在当前兴趣点属性中是否为第一次出现,且所述 当前兴趣点属性是否为包括所述汉字的兴趣点编号最小的记录,生成判断结 果;根据不同判断结果,分别转向步骤27、步骤28、和步骤29。
步骤27,当所述判断结果为第一判断结果所述汉字在所述当前兴趣点 属性中为第一次出现,且所述当前兴趣点属性为包括所述汉字的兴趣点编号最 小的记录时,生成所述汉字的索引记录包括第一索引记录类型标识和所述当 前兴趣点编号以及所述汉字在所述当前兴趣点属性的位置。索引记录类型表示 汉字的索引记录的字节长度和格式,汉字的索引记录的字节长度根据当前兴趣
12点编号的大小而确定。如果当前兴趣点编号的数值比较大时,可以生成字节长 度长的索引记录类型,如果当前兴趣点编号的数值比较小时,可以生成字节长
度短的索引记录类型。例如,汉字的索引记录为{第一索引记录类型标识 "111",当前兴趣点编号,汉字在当前兴趣点属性的位置}。其中,第一索引 记录类型标识、兴趣点编号、汉字在当前兴趣点属性的位置之间的顺序可以调 整,然后,转向步骤210。
步骤28,当所述判断结果为第二判断结果所述汉字在所述当前兴趣点 属性中不是第一次出现,生成的所述汉字的索引记录包括第二索引记录类型 标识、所述汉字在所述当前兴趣点属性的位置。然后,转向步骤210。
步骤29,当所述判断结果为第三判断结果所述汉字在所述当前兴趣点 属性中为第一次出现,且所述当前兴趣点属性不是包括所述汉字的兴趣点编号 最小的记录时,则计算所述当前兴趣点编号与上一条兴趣点编号之间的差值, 根据所述差值的大小选择相应字节长度的索引记录类型,生成所述汉字的索引 记录;索引记录类型表示汉字的索引记录的字节长度和格式,例如,汉字的索 引记录为(索引记录类型标识"10",汉字在当前兴趣点属性的位置}。其中, 第二索引记录类型标识、汉字在当前兴趣点属性的位置之间的顺序可以调整。 该汉字的索引记录中,省略了兴趣点编号,因此,节省了索引记录占用的空间。 然后,转向步骤210。
步骤29中,当所述汉字的当前兴趣点编号与上一条兴趣点编号之间的差 值为大于零且小于预定值时,所述汉字的索引记录包括第三索引记录类型标 识、所述差值、所述汉字在所述当前兴趣点属性的位置。索引记录类型表示汉 字的索引记录的字节长度和格式,所述汉字的索引记录的字节长度根据所述差 值的大小而确定。如果差值比较大时,可以生成字节长度长的索引记录类型, 如果差值比较小时,可以生成字节长度短的索引记录类型。例如,差值位于差 值区间[l, 511]内时,汉字的索引记录的长度为1字节,包括(索引记录类型 标识"0",当前兴趣点编号与当前兴趣点的上一条兴趣点编号之间的差值,汉 字在当前兴趣点属性的位置}。其中,索引记录类型标识、兴趣点编号之间的 差值、汉字在当前兴趣点属性的位置之间的顺序可以调整。差值位于差值区间[512, 32767]内时,汉字的索引记录的长度为3字节,包括(索引记录类型 标识"110",当前兴趣点编号与当前兴趣点的上一条兴趣点编号之间的差值, 汉字在当前兴趣点属性的位置}。该汉字的索引记录中,兴趣点编号之间的差 值占用的字节空间小于兴趣点编号占用的字节空间,因此,节省了索引记录占 用的空间。
当所述汉字的当前兴趣点编号与所述上一条兴趣点编号之间的差值大于 或等于所述预定值,所述汉字的索引记录包括第四索引记录类型标识、所述 当前兴趣点编号、所述汉字在所述当前兴趣点属性的位置。索引记录类型表示 汉字的索引记录的字节长度和索引记录的格式,汉字的索引记录的字节长度根 据当前兴趣点编号的大小而确定。如果当前兴趣点编号的数值比较大时,可以 生成字节长度长的索引记录类型,如果当前兴趣点编号的数值比较小时,可以 生成字节长度短的索引记录类型。例如,汉字的索引记录为(索引记录类型 标识"111",当前兴趣点编号,汉字在当前兴趣点属性的位置}。本发明实施 例中的索引记录类型标识可以采用其他形式,根据实际情况确定。
步骤210,组合所述汉字的索引记录,生成所述汉字的索引记录列表。
步骤211,根据所述汉字的索引记录列表的长度,生成所述汉字的索引记 录列表的地址信息。
步骤212,组合所述汉字的编码、所述汉字的索引记录列表、所述汉字的 索引记录列表的地址信息,生成所述兴趣点属性的索引数据库。
如图3所示,为兴趣点属性的索引数据库的生成方法另一实施例,该实施 例以兴趣点属性为拼音属性为例进行描述,兴趣点属性可为兴趣点名称拼音、 地址拼音等。所述方法包括
步骤31,统计所述兴趣点属性中出现的不同拼音。当同一个拼音在同一 兴趣点属性中再次出现,则不再统计。当同一个拼音在不同兴趣点属性中再次 出现,也不再统计。本领域技术人员可以明白,对其他少量的字母、数字、符 号也可以统计,进行索引。此实施例中,为了减少数据库的存储空间,对其他 少量的字母、数字、符号可以不统计,不进行索引。例如,例如兴趣点1:{编 号100,名称"dongfangshangshaA,, }和兴趣点2: {编号101,名称"dong
14fang xi yang yang,,}中,统计的不同4并音分另U为"dong,, 、 "fang" 、 "shang,, 、 "sha,,、 "xi"、 "yang"。对"A,,可以不进行索引。由于兴趣点2中的"dong"、 "fang"
已经在兴趣点1中出现过,因此不进行第二次统计,同理,"yang"在兴趣点
2中出现了两次,因此只统计一次。
步骤32,获取所述拼音的编码。具体来讲,对所述拼音进行编号,将所
述拼音的编号作为所述拼音的编码。在获取文字单元的编码时,分别将"dong" "fang" "shang" "sha"编号为1、 2、 3、 4,将l、 2、 3、 4分别作为"dong" "fang" "shang" "sha"的编码。
步骤33,依次查找包含所述拼音的兴趣点属性以及所述拼音在所述兴趣
点属性中的位置。例如,兴趣点1: {编号100,名称"dong fang shang sha" }
为包含拼音"fang"的兴趣点属性,以及拼音"fang"所述兴趣点属性中的位
置为2。
步骤34,依次获取包含所述拼音的兴趣点属性作为当前兴趣点属性。 步骤35,判断所述拼音在当前兴趣点属性中是否为第一次出现,且所述 当前兴趣点属性是否为包括所述拼音的编号最小的兴趣点记录,生成判断结 果;根据不同判断结果,分别转向步骤36、步骤37、和步骤38。
步骤36,当所述判断结果为第一判断结果所述拼音在所述当前兴趣点 属性中为第一次出现,且所述当前兴趣点属性为包括所述拼音的编号最小的兴 趣点记录时,根据当前兴趣点编号值的大小选择相应字节长度的索引记录类 型,生成所述拼音的索引记录,所述拼音的索引记录包括第一索引记录类型 标识和所述当前兴趣点编号以及所述拼音在所述当前兴趣点属性的位置。索引 记录类型表示拼音的索引记录的字节长度和格式,拼音的索引记录的字节长度 根据当前兴趣点编号的大小而确定。如果当前兴趣点编号的数值比较大时,可 以生成字节长度长的索引记录类型,如果当前兴趣点编号的数值比较小时,可 以生成字节长度短的索引记录类型。例如,拼音的索引记录为{第一索引记 录类型标识"111",当前兴趣点编号,拼音在当前兴趣点属性的位置}。其中, 第一索引记录类型标识、兴趣点编号、拼音在当前兴趣点属性的位置之间的顺 序可以调整,然后,转向步骤39。步骤37,当所述判断结果为第二判断结果所述^f音在所述当前兴趣点 属性中不是第一次出现,生成的所述拼音的索引记录包括第二索引记录类型 标识、所述拼音在所述当前兴趣点属性的位置。然后,转向步骤39。
步骤38,当所述判断结果为第三判断结果所述拼音在所述当前兴趣点 属性中为第一次出现,且所述当前兴趣点属性不是包括所述拼音的编号最小的 兴趣点记录时,则计算所述当前兴趣点编号与上一条兴趣点编号之间的差值, 根据所述差值的大小选择相应字节长度的索引记录类型,生成所述拼音的索引 记录;索引记录类型表示拼音的索引记录的字节长度和格式,例如,拼音的索 引记录为{索引记录类型标识"10",拼音在当前兴趣点属性的位置}。其中, 第二索引记录类型标识、拼音在当前兴趣点属性的位置之间的顺序可以调整。 该拼音的索引记录中,省略了兴趣点编号,因此,节省了索引记录占用的空间。 然后,转向步骤39。
步骤38中,当所述拼音的当前兴趣点编号与上一条兴趣点编号之间的差 值为大于零且小于预定值时,所述拼音的索引记录包括第三索引记录类型标 识、所述差值、所述拼音在所述当前兴趣点属性的位置。索引记录类型表示拼 音的索引记录的字节长度和格式,所述拼音的索引记录的字节长度根据所述差 值的大小而确定。如果差值比较大时,可以生成字节长度长的索引记录类型, 如果差值比较小时,可以生成字节长度短的索引记录类型。例如,差值位于差 值区间[l, 511]内时,拼音的索引记录的长度为1字节,包括(索引记录类型 标识"0",当前兴趣点编号与当前兴趣点的上一条兴趣点编号之间的差值,拼 音在当前兴趣点属性的位置}。其中,索引记录类型标识、兴趣点编号之间的 差值、拼音在当前兴趣点属性的位置之间的顺序可以调整。差值位于差值区间 [512, 32767]内时,拼音的索引记录的长度为3字节,包括(索引记录类型 标识"110",当前兴趣点编号与当前兴趣点的上一条兴趣点编号之间的差值, 拼音在当前兴趣点属性的位置}。该拼音的索引记录中,兴趣点编号之间的差 值占用的字节空间小于兴趣点编号占用的字节空间,因此,节省了索引记录占 用的空间。
当所述拼音的当前兴趣点编号与所述上一条兴趣点编号之间的差值大于或等于所述预定值,所述拼音的索引记录包括第四索引记录类型标识、所述 当前兴趣点编号、所述拼音在所述当前兴趣点属性的位置。索引记录类型表示 拼音的索引记录的字节长度和索引记录的格式,拼音的索引记录的字节长度根 据当前兴趣点编号的大小而确定。如果当前兴趣点编号的数值比较大时,可以 生成字节长度长的索引记录类型,如果当前兴趣点编号的数值比较小时,可以 生成字节长度短的索引记录类型。例如,拼音的索引记录为{索引记录类型 标识"111",当前兴趣点编号,拼音在当前兴趣点属性的位置}。本发明实施 例中的索引记录类型标识可以采用其他形式,^^艮据实际情况确定。
步骤39,组合所述拼音的索引记录,生成所述拼音的索引记录列表。
步骤310,根据所述拼音的索引记录列表的长度,生成所述拼音的索引记 录列表的地址信息。
步骤311,组合所述拼音的编码、所述拼音的索引记录列表、所述拼音的 索引记录列表的地址信息,生成所述兴趣点属性的索引数据库。
以下结合图4至图18描述本发明兴趣点属性的索引数据库的生成方法的 应用场景。
本应用场景中,对于兴趣点编号的最大赋值是23比特位,即不大于 8388607。当兴趣点数据库中的兴趣点总数大于这个数时,需要对兴趣点数据 库进行分表处理。以下描述针对兴趣点数据库中的兴趣点总数符合预设要求时 的情景,即小于或等于8388607。兴趣点编号最大赋值也可以为其他比特位, 根据实际需要确定。
如图4所示,本发明所述的兴趣点属性的索引数据库的生成方法包括
步骤41,根据兴趣点属性生成"兴趣点索引数据库管理头"文件,包括 文字单元的索引个数、索引数据库长度、文字单元的编码以及文字单元索引记 录列表的偏移地址;
步骤42,根据文字单元所在的兴趣点属性对应的兴趣点编号以及位置, 生成定长的"文字单元索引记录列表"中间文件;
步骤43,根据定长的文字单元索引记录列表文件,生成变长的"文字单 元索引记录列表"中间文件;步骤44,根据变长的"文字单元索引记录列表"的字节长度,在"兴趣 点索引数据库管理头,,文件中补充文字单元索引记录列表的偏移地址信息;
步骤45,组合"兴趣点索引数据库管理头"、"文字单元索引记录列表" 中间文件、生成兴趣点的索引数据库。
如图5所示,所述步骤41包括
步骤411 ,统计兴趣点属性中出现的所有不同文字单元。 步骤412,对这些文字单元进行编码,生成文字单元的编码列表。 步骤413,对文字单元的编码列表进行排序。
步骤414,将文字单元的索引个数、文字单元编码列表写入"兴趣点索引 数据库管理头"文件中,(其它字段,如索引数据库长度和文字单元索引记录 列表的偏移地址信息暂时空缺不填),"兴趣点索引数据库管理头"文件的格式 如图7所示。
如图6所示,所述步骤42中,包括如下步骤
步骤421,从"兴趣点索引数据库管理头"文件中顺序选取一个文字单元;
步骤422,统计该文字单元在各兴趣点属性中的位置,按(兴趣点编号, 位置)的索引结构,组成一条索引记录;
步骤423,将该文字单元的所有索引记录合并,得到索引记录列表中间文 件,该中间文件的每条索引记录是定长的。
重复步骤421~步骤423的处理流程,直到所有文字单元的索引记录处理 过程全部处理完毕。
如图8所示,所述步骤43中包括如下步骤
步骤431,从所述步骤42得到的每个文字单元的索引记录列表中间文件, 计算每条索引记录的兴趣点编号与上一条索引记录的兴趣点编号的差值;
步骤432,按步骤431计算得到兴趣点编号差值,将索引记录转换为四种 不同长度的存储类型,并写入"文字单元索引记录列表"中间文件;
重复步骤431~步骤432的处理流程,直到所有文字单元的索引记录处理 过程全部处理完毕。
转换原则如下情况l:文字单元的第一条索引记录,或者该条索引记录对应的兴趣点编 号与上一条索引记录对应的兴趣点编号差值超过32767。如图9所示,将索引 记录转换为类型l,如图10所示,长度为4字节,包括(索引记录类型标识 "111",当前兴趣点编号,文字单元在当前兴趣点属性中的位置}。
情况2: —个文字单元在同一兴趣点属性中再次出现时,该索引记录的兴 趣点编号和上一条索引记录的兴趣点编号相同,可以省略存储兴趣点编号差 值,如图11所示,将索引记录转换为类型2,如图12所示,长度为l字节, 包括{索引记录类型标识"10",文字单元在当前兴趣点属性中的位置}。
情况3:该条索引记录对应的兴趣点编号与上一条索引记录对应的兴趣点 编号之间的差值区间为[l, 511]。如图13所示,将索引记录转换为类型3,如 图14所示,长度为2字节,包括(索引记录类型标识"0",当前兴趣点编号 与当前兴趣点的上一条兴趣点编号之间的差值,文字单元在当前兴趣点属性中 的位置}。
情况4:该条索引记录对应的兴趣点编号与上一条索引记录对应的兴趣点 编号之间的差值区间为[512, 32767]。索引记录类型表示文字单元的索引记录 的字节长度,所述文字单元的索引记录的字节长度根据所述差值的大小而确 定。如杲差值比较大时,可以生成字节长度长的索引记录类型,如果差值比较 小时,可以生成字节长度短的索引记录类型。如图15所示,将索引记录转换 为类型4,如图16所示,长度为3字节,包括(索引记录类型标识"110", 当前兴趣点编号与当前兴趣点的上一条兴趣点编号之间的差值,文字单元在当 前兴趣点属性的位置}。这样,就将定长的索引记录列表转换为变长的索引记 录列表。
如图17所示,所述步骤44中包括如下步骤
步骤441,从"兴趣点索引数据库管理头"文件依次选取每一个文字单元; 步骤442,根据图7中可以得知,在"兴趣点索引数据库管理头"文件中, 文字单元索引个数、索引数据库长度、文字单元的编码以及文字单元索引记录 列表的偏移地址信息分别占用4个比特,如果当前文字单元是第1个文字单元, 该文字单元的索引记录列表的偏移地址为8* (n+l), n为文字单元的总数量;步骤443,如果当前文字单元不是第一个文字单元,该文字单元索引记录 列表的偏移地址设为上一个文字单元索引记录列表的偏移地址加上一个文字 单元的索引记录列表的长度;
步骤444,累加各个文字单元的索引记录列表的长度,写入"兴趣点索引 数据库管理头"文件中"索引数据库长度"字段所在的位置。在该实施例中, 8* (n+l)为"兴趣点索引数据库管理头"的文件长度。
如图18所示,所述步骤45包括如下步骤
步骤451,打开"兴趣点索引数据库管理头"文件;
步骤452,按文字单元索引记录列表依次读取"文字单元索引记录列表" 中间文件,合并到在"兴趣点索引数据库管理头"的文件尾;
重复步骤452的处理流程,直到所有的"文字单元索引记录列表"中间文 件全部处理完毕。
本发明中,在文字单元的索引记录中省略了文字单元的出现频率字段,节 省了索引记录的空间开销。由于兴趣点编号的差值变化范围非常广,采用变长 方法存储索引记录。为描述变长索引记录采用的字节数,可将索引记录的开始 若干位保留作为索引记录类型的标识。把索引记录中的兴趣点编号与文字单元 的位置混合编码,将其合并为一个数,在保存的时候在索引记录中保存此混合 编码。
上述索引记录的存储结构变动带来的好处在于,不需要另外建立独立的字 段来保存文字单元在兴趣点的出现位置,而是利用一索引记录的一些字节来保 存文字单元在兴趣点属性的位置信息。例如在兴趣点名称搜索引擎中,兴趣点 的总条数大概在2000万左右,那么保存兴趣点的索引记录的兴趣点编号实际 只需要26位就足够了。如果用32位的整型来保存1条索引记录,那么在兴趣 点索引结构中,除兴趣点编号需要用到的26位外,可以利用剩余的6位来保 存文字单元在兴趣点属性的位置信息。由于实际兴趣点名称数据中名称信息的 长度很少大于64个字,因此利用6位来保存文字单元的位置信息基本能够满 足兴趣点名称检索的需求。
如图19所示,为本发明所述的一种兴趣点属性的索引数据库的生成装置
2019,包括
统计单元191,用于统计所述兴趣点属性中出现的不同文字单元; 获取单元192,用于获取所述文字单元的编码;
查找单元193,用于查找包含所述文字单元的兴趣点属性以及所述文字单 元在所述兴趣点属性中的位置;
索引记录列表生成单元194,用于根据所述兴趣点属性对应的兴趣点编号 之间差值的大小以及所述文字单元在所述兴趣点属性中的位置,生成所述文字 单元的索引记录列表;
地址信息生成单元195,用于根据所述文字单元的索引记录列表的长度, 生成所述文字单元的索引记录列表的地址信息;
组合单元196,用于组合所述文字单元的编码、所述文字单元的索引记录 列表、所述文字单元的索引记录列表的地址信息,生成所述兴趣点属性的索引 数据库。
上述方案中,由于文字单元的索引记录列表是根据兴趣点编号之间的差值 生成的,兴趣点编号之间的差值比兴趣点编号的数值要小,因此兴趣点编号之 间的差值占用的字节比兴趣点编号占用的字节要少,因此能够减少兴趣点属性 的索引数据库的空间开销。
如图20所示,本发明所述的兴趣点属性的索引数据库的生成装置19,还 包括排序单元197,用于对所述文字单元的编码进行排序;
所述查找单元193查找包含所述文字单元的兴趣点属性以及所述文字单 元在所述兴趣点属性中的位置。
所述索引记录列表生成单元194包括
获取子单元1941,依次获取包含所述文字单元的兴趣点属性作为当前兴 趣点属性;
判断子单元1942,判断所述文字单元在当前兴趣点属性中是否为第一次 出现,且所述当前兴趣点属性是否为包括所述汉字的兴趣点编号最小的记录, 生成判断结果;
索引记录生成子单元1943,根据所述判断结果,生成所述文字单元的索引记录;
组合子单元1944,组合所述文字单元的索引记录,生成所述文字单元的 索引记录列表。
本发明记录文字单元的索引记录列表时,根据兴趣点编号之间的差值可灵 活地采取不同的字节长度,不需要采用固定的字节长度,因此能够减少兴趣点 属性的索引数据库的空间开销。
本发明基于倒排索引机制理论,提供一种针对兴趣点属性的索引模型,有 益效果如下
1) 采用了变长记录存储方法,减少兴趣点名称索引空间的开销;
2) 索引空间的减小可减少磁盘I/O次数,提高在资源受限的嵌入式设备上 的可用性。
本发明的变长索引方法还可应用于兴趣点简拼索引、兴趣点分类索引压缩等。
是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一移动终端 的可读取存储介质中,该程序在执行时,包括如上述方法实施例的步骤,所述 的存储介质等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技 术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰, 这些改进和润饰也应—见为本发明的保护范围。
2权利要求
1.一种兴趣点属性的索引数据库的生成方法,其特征在于,包括统计所述兴趣点属性中出现的不同文字单元;获取所述文字单元的编码;查找包含所述文字单元的兴趣点属性以及所述文字单元在所述兴趣点属性中的位置;根据所述兴趣点属性对应的兴趣点编号之间差值的大小以及所述文字单元在所述兴趣点属性中的位置,生成所述文字单元的索引记录列表;根据所述文字单元的索引记录列表的长度,生成所述文字单元索引记录列表的地址信息;组合所述文字单元的编码、所述文字单元的索引记录列表、所述文字单元的索引记录列表的地址信息,生成所述兴趣点属性的索引数据库。
2. 根据权利要求1所述的兴趣点属性的索引数据库的生成方法,其特征 在于,所述根据所述兴趣点属性对应的兴趣点编号之间差值的大小以及所述文 字单元在所述兴趣点属性中的位置,生成所述文字单元的索引记录列表的步骤 包括依次获取包含所述文字单元的兴趣点属性作为当前兴趣点属性;判断所述文字单元在当前兴趣点属性中是否为第 一次出现,且所述当前兴趣点属性是否为包括所述文字单元的兴趣点编号最小的兴趣点属性,生成判断结果;根据所述判断结果,生成所述文字单元的索引记录; 组合所述文字单元的索引记录,生成所述文字单元的索引记录列表。
3. 根据权利要求2所述的兴趣点属性的索引数据库的生成方法,其特征 在于,所述#4居所述判断结果,生成所述文字单元的索引记录的步骤包括当所述判断结果为所述文字单元在所述当前兴趣点属性中为第一次出 现,且所述当前兴趣点属性为包括所述文字单元的兴趣点编号最小的兴趣点属 性时,生成的所述文字单元的索引记录包括第一索引记录类型标识和所述当前兴趣点编号以及所述文字单元在所述当前兴趣点属性的位置;当所述判断结果为所述文字单元在所述当前兴趣点属性中不是第一次出现,生成的所述文字单元的索引记录包括第二索引记录类型标识、所述文字单元在所述当前兴趣点属性的位置;当所述判断结果为所述文字单元在所述当前兴趣点属性中为第一次出现,且所述当前兴趣点属性不是包括所述文字单元的兴趣点编号最小的兴趣点属性时,则计算所述当前兴趣点编号与上一条兴趣点编号之间的差值,根据所述差值的大小选择相应字节长度的索引记录类型,生成所述文字单元的索引记录。
4. 根据权利要求3所述的兴趣点属性的索引数据库的生成方法,其特征 在于,所述根据所述差值的大小选择相应字节长度的索引记录类型,生成所述 文字单元的索引记录的步骤具体为当所述文字单元的当前兴趣点编号与上一条兴趣点编号之间的差值为大 于零且小于预定值时,所述文字单元的索引记录包括第三索引记录类型标识、 所述差值、所述文字单元在所述当前兴趣点属性的位置;当所述文字单元的当前兴趣点编号与所述上一条兴趣点编号之间的差值 大于或等于所述预定值,所述文字单元的索引记录包括第四索引记录类型标 识、所述当前兴趣点编号、所述文字单元在所述当前兴趣点属性的位置。
5. 根据权利要求1所述的兴趣点属性的索引数据库的生成方法,其特征 在于,所述查找包含所述文字单元的兴趣点属性以及所述文字单元在所述兴趣 点属性中的位置的步骤之前,还包括对所述文字单元的编码进行排序;所述查找包含所述文字单元的兴趣点属性以及所述文字单元在所述兴趣 点属性中的位置的步骤具体为依次查找包含所述文字单元的兴趣点属性以及 所述文字单元在所述兴趣点属性中的位置。
6. 根据权利要求1所述的兴趣点属性的索引数据库的生成方法,其特征 在于,所述文字单元为汉字或拼音。
7. 根据权利要求6所述的兴趣点属性的索引数据库的生成方法,其特征 在于,当所述文字单元为汉字时,所述获取所述文字单元的编码的步骤具体为按照汉字编码方式,获得所述汉字的编码;或对所述汉字进^f于顺序编号,将所述汉字的编号作为所述汉字的编码。
8. 根据权利要求6所述的兴趣点属性的索引数据库的生成方法,其特征 在于,当所述文字单元为拼音时,所述获取所述文字单元的编码的步骤具体为对所述拼音进行顺序编号,将所述拼音的编号作为所述拼音的编码。
9. 一种兴趣点属性的索引数据库的生成装置,其特征在于,包括 统计单元,用于统计所述兴趣点属性中出现的不同文字单元; 获取单元,用于获取所述文字单元的编码;查找单元,用于查找包含所述文字单元的兴趣点属性以及所述文字单元在 所述兴趣点属性中的位置;索引记录列表生成单元,用于根据所述兴趣点属性对应的兴趣点编号之间 差值的大小以及所述文字单元在所述兴趣点属性中的位置,生成所述文字单元 的索引记录列表;地址信息生成单元,用于根据所述文字单元的索引记录列表的长度,生成 所述文字单元的索引记录列表的地址信息;组合单元,用于组合所述文字单元的编码、所述文字单元的索引记录列表、 所述文字单元的索引记录列表的地址信息,生成所述兴趣点属性的索引数据 库。
10. 根据权利要求9所述的兴趣点属性的索引数据库的生成装置,其特征 在于,还包括排序单元,用于对所述文字单元的编码进行排序;所述查找单元依次查找包含所述文字单元的兴趣点属性以及所述文字单 元在所述兴趣点属性中的位置。
全文摘要
本发明提供一种兴趣点属性的索引数据库的生成方法和装置,涉及数据库领域,为解决现有技术中索引数据库的空间开销比较大的问题而发明。所述方法包括统计兴趣点属性中出现的不同文字单元;获取文字单元的编码;查找包含文字单元的兴趣点属性以及文字单元在兴趣点属性中的位置;根据兴趣点属性对应的兴趣点编号之间差值的大小以及文字单元在兴趣点属性中的位置,生成文字单元的索引记录列表;根据文字单元的索引记录列表的长度,生成文字单元索引记录列表的地址信息;组合文字单元的编码、文字单元的索引记录列表、文字单元的索引记录列表的地址信息,生成兴趣点属性的索引数据库。本发明能够有效减少兴趣点属性的索引数据库的存储空间。
文档编号G01C21/26GK101551820SQ200910084408
公开日2009年10月7日 申请日期2009年5月13日 优先权日2009年5月13日
发明者曹晓航, 栋 黄 申请人:北京四维图新科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1