一种数据存储方法及装置的制造方法_3

文档序号:8473010阅读:来源:国知局
]在新增加的网页索引表中存储有本次更新对应的网页标识,所述网页标识具体可以是该网页的URL地址,或者其他可用于标识该网页的信息。该网页存储表中还存储有所述网页标识在所述索引存储区中的存储位置信息,用于在所述索引存储区中定位目标网页标识。
[0108]上述步骤203、204的执行顺序不做限制。
[0109]所述步骤204可具体根据如下步骤a)和b)来存储所述字段数据对应的网页标识:
[0110]步骤a):在所述网页索引表中设置2N个索引子表,为每一个索引字表设置对应的N位二进制表值,N为预设大于等于I的整数。
[0111]步骤b):获取所述网页标识对应的二进制数值,根据所述二进制数值的前N位将所述网页标识存储到对应表值的索引子表中。
[0112]由于在每次更新时涉及的网页数量较大,并且网页标识在计算机中的存储形式一般是一个位数较多的二进制数值,为了便于在网页索引表中快速查找目标网页的标识,可将网页索引表划分成2N个索引子表,每一个索引字表对应一个N位二进制表值。在存储网页标识时,可根据该网页标识的前N位二进制数值,将该网页标识存储到对应表值的索引字表中。这样在查找该网页标识时,只需根据该网页标识的前N位二进制数值,去对应表值的索引字表中查找即可,大大节省了查找时间。
[0113]如图3所示为采用本发明上述实施例所建立的数据存储结构示意图。互联网中包含的网页数量较大,我们一般将哈希值相同或相近的网页的摘要和索引信息存储在同一个索引分片中,在图3中,以单独的一个索引分片为例进行介绍,该索引分片包含网页索引表、字段存储区、版本信息表。
[0114]网页索引表中存储本次更新时涉及的网页标识列表,以及每一个网页标识在新增加的更新存储区中的存储位置信息。网页索引表i为在第i次更新时新增加的网页索引表。在实际应用中,可以将网页索引表的名称上附加更新时间信息,一方面可以区分各个不同的网页索引表,另一方面也便于从名称上立刻辨别出哪一个为最新的网页索引表。
[0115]在图3中,包含三个字段存储区,分别是稳定存储区、不易变存储区、易变存储区。每一个字段存储区均包含若干更新存储区。例如,更新存储区i为在第i次更新时,在不易变存储区中新增加的更新存储区,其包含数据存储区i和对应的索引存储区i两部分。在实际应用中,也可以将更新存储区的名称中附加更新时间信息,一方面可以区分各个不同的更新存储区,另一方面也便于从名称上立刻辨别出哪一个为最新的更新存储区。
[0116]版本信息表中记录了最新的版本信息,如当前索引分片包含哪些网页索引表、各字段存储区包含哪些更新存储区等信息,以便于进行版本管理,以确保在正排索引时能够按照最新的索引信息获得最新的摘要字段数据。版本信息表i为在第i次更新时新增加的版本信息表,在实际应用中,也可以将版本信息表的名称中附加更新时间信息,一方面可以区分各个不同的版本信息表,另一方面也便于从名称上立刻辨别出哪一个为最新的版本信肩、O
[0117]如图4所示为本发明提供的一种数据存储方法的另一个实施例的流程示意图,在所述实施例中,步骤201至204参见上述实施例中的对应步骤的描述,所述实施例还包括如下步骤205至步骤208:
[0118]步骤205:判断是否有待删除的网页,如果有,在新增加的更新存储区中设置所述待删除的网页的有效时间。
[0119]步骤206:当达到所述有效时间后,将所述待删除的网页在各次更新时存储的字段数据和对应的索引信息标记为无效。
[0120]本发明的技术方案,对网页摘要及索引的更新均为增量更新,对于待删除的网页也适用。如果本次更新时,检测到有需要删除的网页,则认为该网页的所有字段都是更新字段,在对应的各个字段存储区中相应的也要增加更新存储区。
[0121]由于是待删除的网页,更新后的字段数据都是空数据,因此在数据存储区中,可以用预设标识来代替更新后的字段数据,并在索引存储区中相应存储该预设标识的位置信息和网页标识。
[0122]倒排索引和正排索引在实际使用时可能存在更新时间差的问题,例如在本次更新中有待删除的网页,如果当网页摘要和对应的正排索引更新后将该待删除的网页的各摘要字段及索引信息立即删除,或标记为无效的话,由于倒排索引此时可能还未完全更新,即在倒排索引使用的网页列表中还未将该待删除的网页标识删除,则此时可能还会有针对该待删除的网页的摘要字段的索引需求。
[0123]因此,在实施例中,为待删除的网页设置“有效时间”属性,这样在本次更新网页摘要和对应的索引信息后,仍然会对该待删除的网页的字段数据和对应的索引信息保留一段时间,直至达到所述有效时间后,将所述待删除的网页在各次更新时存储的字段数据和对应的索引信息标记为无效,这样可以保证在倒排索引使用的网页列表中该待删除的网页标识已经确实被删除了,不会再有针对该待删除的网页的摘要字段的索引需求,从而解决了倒排索引和正排索引的更新时间差的问题。
[0124]该“有效时间”属性可以与该待删除的网页标识一起,存储在索引存储区中。为了保持存储格式一致,对于不需要删除的网页,也可以在其各个更新存储区中保留该“有效时间”属性,并将该属性值设置为无效,或设置一个无限长的时间,直至检测到该网页需要删除时,才在新增加的更新存储区中真正设置该属性的值。
[0125]步骤207:将历史更新存储区中与所述更新字段对应的历史字段数据和对应的历史索引信息标记为无效。
[0126]由于本发明的网页摘要字段的更新是增量更新,因此可能出现这样的情况,即多个更新存储区包含同一个网页在不同时期更新的字段数据及对应的索引信息。这时,应以最新更新的更新存储区作为该网页对应的有效更新存储区,该有效更新存储区中包含的字段数据和对应的历史索引信息即为有效的字段数据和索引信息。而将以往的历史更新存储区中与所述更新字段对应的历史字段数据和对应的历史索引信息都标记为无效。
[0127]在实际应用中,可在更新存储区对应的文件名中附带更新时间信息,这样从各更新存储区的文件名即可快速判断出哪一个更新存储区为有效更新存储区。
[0128]步骤208:合并所述字段存储区包含的若干更新存储区,在合并后的新更新存储区中删除标记为无效的字段数据和对应的索引信息。
[0129]随着网页摘要不断更新,各字段存储区中包含的更新存储区的数量越来越多,同时各更新存储区包含的无效字段数据和索引信息的数量也越来越多。过多的更新存储区的数量降低了检索服务的效率,并且无效字段数据和索引信息也浪费了很多存储空间。如果进行全量更新的话,涉及的数据量较大,因此本实施例中对若干更新存储区进行合并,有效减少更新存储区的数量,去掉其中包含的无效字段数据和对应的索引信息,节约存储空间,从而使增量更新一直进行下去,避免全量更新所带来的时间和设备的巨大开销。
[0130]具体的,上述步骤208可具体包括如下步骤c)、d)、e):
[0131]步骤c):在所述字段存储区中选择若干待合并的更新存储区。
[0132]步骤d):分别计算所述待合并的更新存储区包含的有效字段数据的数量之和。
[0133]这里所指的有效字段数据的数量具体可以是有效字段的个数,也可以是有效字段数据所占用的内存值。
[0134]步骤e):如果所述数量之和小于第一预设阈值,则合并所述待合并的更新存储区。
[0135]具体的,可为每个更新存储区设置其包含的字段数据和/或索引信息的数量上限阈值,例如,设置每一个更新存储区最多包含100条字段对应的字段数据。假设选择了两个待合并的更新存储区,并且这两个待合并的更新存储区包含的有效字段分别为55和60,则由于这两个待合并的更新存储区包含的有效字段的数量之和超过了 100,因此这两个待合并的更新存储区不能合并。
[0136]可选的,上述步骤2081可具体包括如下子步骤:
[0137]分别计算每一个更新存储区包含的有效字段数据数量。
[0138]从所述字段存储区中选择所述有效字段数据数量最少的若干更新存储区作为所述待合并的更新存储区。
[0139]在选择待合并的更新存储区时,可有针对性的选择有效字段数据的数量最少的若干更新存储区,这样选择出来的待合并的更新存储区更有可能符合上述步骤2083的合并条件。
[0140]可选的,上述步骤2081也可
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1