数据搜索装置的制作方法

文档序号:6411781阅读:127来源:国知局
专利名称:数据搜索装置的制作方法
技术领域
本发明涉及一种响应于请求提供数据搜索用数据的数据搜索装置。
公知一种数据搜索装置,用于把将登记入数据库的文件分成记录,对这些记录进行编号,并存储记录号数据,以处理被登记的文件,其中每个记录是存储在数据库中用于登记和搜索的一个数据单元。
这种常规的数据搜索装置在预定存储区中存储记录号和字符出现数据。

图17是已有技术数据搜索装置所使用的索引文件的数据格式的示意图。
在图17中,用作索引文件的三十二位的预定存储区存储二十位的记录号数据和十二位的字符出现数据。因此,存在的问题是索引文件此种格式只对1048576(220)个记录提供处理。此外,在已有技术中,存在的问题是如果记录的数目增加,则应增加索引文件的大小(位)。
此外,在已有技术的数据搜索装置中,必须提供表示文件号、页号和记录号之间对应性的对应性表格。因此,存在的问题是必须增加对应性表格,且如果更新文件引起页数增加,则必须对对应表进行排序(sort)。
本发明的目的是提供一种改进的数据搜索装置。
依据本发明,提供了第一数据搜索装置,它包括输入部分,用于接收包括搜索请求数据和登记请求的搜索请求;响应于来自输入部分的登记请求的分段部分,用于依据包含在数据中的分段数据把要登记入记录单元的数据进行分段;编号部分,用于对记录进行分组和编号从而把每个预定数目的记录分成一组,并从被编号和分组的记录中产生组号数据和相对记录号数据;存储部分,用于相应地存储组号数据和相对记录号数据;以及搜索数据产生部分,用于依据来自输入部分的搜索请求数据以及存储部分中的组号数据和相对记录号数据,产生和输出将用于搜索一个记录的搜索数据。
依据本发明,提供了第二数据搜索装置,它包括请求接收部分,用于接收包括搜索数据和登记请求的搜索请求;响应于登记请求的记录号提供部分,用于把记录号数据提供给每个记录,每个记录是将登记的一个数据单元;相对编号部分,用于把记录号数据组分组,并把记录号数据转换成组号数据和每个组中相对记录号数据;索引文件产生部分,用于从数据和相对记录号数据中产生索引文件;索引文件存储部分,用于存储索引文件;索引文件搜索部分,用于响应于来自请求接收部分的搜索请求,依据索引文件存储部分中的索引文件,搜索由搜索数据所指出的一个记录;绝对编号部分,用于把被搜索一个记录的相对号数据和组号数据转换成记录号数据;以及搜索结果输出部分,用于依据来自绝对编号部分的记录号数据输出搜索结果。
第二数据搜索装置还可包括插入区产生部分,用于在索引文件存储部分中提供存储空间,以在今后索引文件存储部分存储索引文件时把索引数据存入索引文件存储部分。
在第二数据搜索装置中,记录号提供部分产生表示包含在数据中的记录号数据和分段数据之间对应性的记录号对应性表格,搜索结果输出部分依据记录号对应性表格从来自绝对编号部分的记录号数据中输出搜索结果。
在第二数据搜索装置中,索引文件产生部分产生索引文件,它包括至少一个用于存储每个组号数据的标题,以及接在标题后用于存储相对记录号和相应记录数据的索引数据区,此标题和每个索引数据区具有相同的大小。
依据本发明,提供了第三数据搜索装置,它包括请求接收部分,用于接收搜索请求和登记请求;响应于登记请求的记录号提供部分,用于依据包含在数据中的分段数据,通过唯一确定记录号数据的法则,把记录号提供给每个记录,此每个记录是将要登记的一个数据单元;相对编号部分,用于对记录分组从而记录号和至少一个备用记录构成一组,并从被分组的记录号产生组号数据和相应的相对号数据;索引文件产生部分,用于使用相对记录号数据和组号数据从数据中产生索引文件;索引文件存储部分,用于存储索引文件;索引文件搜索部分,响应于来自请求接收部分的搜索请求,依据索引文件存储部分中的索引文件,搜索由搜索请求所指出的一个记录;绝对编号部分,用于把被搜索的一个记录的相对号数据和组号数据转换成记录号数据;以及搜索结果输出部分,用于依据来自绝对编号部分的记录号数据输出搜索结果。
第三数据搜索装置还可包括插入区产生部分,用于在索引存储部分中提供一存储空间,以在今后索引文件存储部分存储索引文件时把索引文件存入索引文件存储部分。
从以下结合附图的详细描述可使本发明的目的和特征变得明显起来,其中图1是本发明第一实施例数据搜索装置的方框图,该图也用于本发明的第三实施例;图2示出第一实施例的流程图,在第二和第三实施例中也参考该图;图3是示出第一实施例的被记录文件一个示例情况的示意图;图4是示出第一实施例的对应性表格一个示例情况的示意图;图5是示出第一实施例的绝对记录号和相对记录号之间关系的示意图;图6是示出第一实施例的索引文件的示意图;图7A是示出第一实施例的字符串和出现次数之间关系的示意图;图7B是示出包括两个预定字符的字符串和出现次数数据之间关系的示意图;图8是此实施例示出索引文件的示意图;图9和10示出第一实施例的搜索处理的流程图;图11是第二实施例的数据搜索装置的方框图;图12示出第二实施例的文件登记操作的流程图;图13是示出第二实施例的文件记录号的示意图;图14示出第三实施例的索引文件产生处理的流程图;图15是示出第三实施例的索引文件的示意图;图16是示出第三实施例的用于产生索引文件的数据的示意图;以及图17是已有技术数据搜索装置所使用的索引文件的数据格式的示意图。
在所有的附图中用相同的标号表示相同或相应的元件或部分。
以下将描述本发明的第一实施例。
图1是本发明第一实施例数据搜索装置的方框图,在第三实施例中也参考该图。
此数据搜索装置包括请求接收部分1,用于接收各种处理用的请求;记录号提供部分2,用于把记录号(数据)分配给将被登记的文件,并产生代表文件号、页号和记录号之间对应性的记录号对应性表格;记录号对应性表格存储部分3,用于存储记录号提供部分2产生的记录号对应性表格;相对编号部分4,用于把记录号提供部分2提供的记录号(数据)分组,并在一个组中把该记录号转换成相对号码;索引文件产生部分5,用于从相对编号部分4提供的相对数目和被登记的数据产生索引文件;索引文件存储部分6,用于存储索引文件产生部分5产生的索引文件;索引文件搜索部分7,用于使用索引文件存储部分6中的索引文件进行搜索;绝对编号部分8,用于把索引文件搜索部分7搜索的相对记录号转换成绝对记录号;文件号转换部分9,用于使用记录号对应性表格存储部分3中的记录号对应性表格,把绝对编号部分8提供的记录号转换成文件号和页号;搜索结果输出部分10,用于显示被搜索的文件号;以及插入区产生部分11,用于在索引文件产生部分5把索引文件存入索引文件存储部分6之前提供用于存储附加数据的数据区。在第一实施例中,不使用插入区产生部分11。
将描述第一实施例的操作。图2示出第一实施例的流程图,在第二和第三实施例中也参考该图。图3是示出此实施例的被记录文件的一个示例情况的示意图。图4是示出此实施例的对应性表格的一个示例情况的示意图。
包含在此数据搜索装置中的cpu(它是包含在数据搜索装置中的一个中央处理单元,但未示出)执行图2中流程图所示的程序。
当用户登记一个文件时,请求接收部分1接收到文件登记请求,而记录号提供部分2响应于此请求把记录号提供给每个记录,此每个记录是将在步骤s1中登记的一个数据单元。即,将被登记的数据即文件包括一些页,而把每页作为提供了一记录号的一个记录。
例如,如果如图3所示登记文件,则向文件D1的第一页提供记录号1;向文件D1的第二页提供记录号2;以及向文件D2的第一页提供记录号3。
cpu产生用于记录号对应性表格的表格数据,此表格代表记录号、文件号和页号之间的关系。cpu在步骤s2中使用表格数据更新记录号对应性表格,并把已更新的记录号对应性表格存入对应性表格存储部分3。当登记了如图3所示的文件时,记录号对应性表格的数据情况如图4所示。
cpu在步骤s3把记录分组。假定把65536个记录分成一组,则给出组号如下组号=<记录号/65536>
这里<>代表商,即组数是一个通过略去记录号/65536的小数部分而提供的整数。
在接着的步骤s4中,给出组中的相对记录号如下相对记录号=记录号%65536这里算符%代表余数。
如示出本实施例绝对记录号和相对号之间关系的图5所示,绝对记录号被转换成相对号。例如,绝对记录号65537被转换成第一组中的相对记录号1,绝对记录号13072被转换成第二组中的相对记录号0。
然后,cpu在步骤s5中产生索引文件。图6是示出本实施例索引文件的示意图。索引文件包括在一包含两个字符的字符串中两个字符出现次数数据。
图7A是示出第一实施例字符串和出现次数之间关系的示意图。
图7B是示出包括两个预定字符的字符串和出现次数数据之间关系的示意图。
假定被登记的数据是“abaabcac”,则各个字符的出现次数如图7A所示。然后,划分被登记的数据,从而以重叠方式从被登记数据顶部连续提供字符链。即,在每隔两个字符把字符串分段,其中每隔一个字符转移分段点。于是,第一字符链是(a,b),其出现次数数据是(1,1)。接着的字符链是(b,a),出现次数数据是(1,2)。类似地,cpu获得所有字符链的出现次数数据。
图8是示出此实施例索引文件的示意图。假定在组1中以记录号1中登记的数据是“ababcbcababc”,在组1中以记录号2中登记的数据是“bbaabbcabc”,在组2中以记录号1中登记的数据是“bcababcbc”,在组2的记录号2中登记的数据是“acbcabbaabc”。cpu依据图8所示的字符链(a,b)和(b,c)计算出现次数。
cpu反复执行步骤s1到s7,以产生所述索引文件直到处理了最后一个记录,以提供索引文件。即,cpu确定是否在步骤s6处理了最后一个记录。如果此记录是最后一个,则处理结束。如果记录不是最后一个,则处理返回步骤s1。
将描述搜索处理。
图9和10示出本实施例搜索处理的流程图。
当用户输入包括将被搜索的字符串(搜索字符串)数据的搜索请求时,接收部分1接收搜索请求,并把搜索字符串数据提供给索引文件搜索部分7。索引文件搜索部分7把字符串划分成多个字符链。
如果搜索字符串是“abc”,则索引文件搜索部分7在步骤s11把它划分成字符链(a,b)和(b,c)。在步骤s12中,索引文件搜索部分7从索引文件存储部分6中各个信息顶部位置处字符链(a,b)和字符链(b,c)的出现次数数据文件中获得字符链(a,b)和(b,c)的顶部出现次数数据。由索引文件的指针提供位置。
在图8的情况中,在组1的记录号1处,字符链(a,b)的出现次数数据是(1,1),字符链(b,c)的出现次数数据是(2,1)。因此,索引文件搜索部分7从索引文件存储部分6获得字符链(a,b)的出现次数数据(1,1),以及字符链(b,c)的出现次数数据(2,1)。
然后,在步骤s13,索引文件搜索部分7比较索引文件存储部分6中获得的字符链(a,b)和(b,c)的出现次数数据的组号。如果获得的出现次数数据不相同,则索引文件搜索部分7把位于具有较小组号的组中任一个字符链(a,b)和(b,c)的索引文件的指针加到下一组中出现次数数据的顶部,并重复步骤s13和s14。如果获得的字符链(a,b)和(b,c)的出现次数数据的组号相同,则索引文件搜索部分7在步骤s15中比较获得的出现次数数据的记录号。
在图8的情况中,因为两者的组号是1,所以索引文件搜索部分7比较记录号。
如果同一组中的相对记录号不同,则索引文件搜索部分7在步骤s16确定获得的出现次数数据是否是组中最后一个数据。如果获得的出现次数数据不是组中的最后一个数据,则索引文件搜索部分7在步骤s17获得组中具有较小记录号的下一个出现次数数据。索引文件搜索部分7重复从步骤s15到s17的处理。如果获得的出现次数数据是组中的最后一个数据,则索引文件搜索部分7在步骤s18获得位于下一组顶部的出现次数数据,并重复从步骤s13到步骤s18的处理。如果该组中的记录号相同,则索引文件搜索部分7在步骤s19比较出现次数数据。
在图8的情况下,因为组中的两个记录号都是1,则索引文件搜索部分7比较出现次数数据。
索引文件搜索部分7比较出现次数数据如下把字符链(a,b)中字符“b”的出现次数与字符链(b,c)中字符“b”的出现次数相比。如果两个出现次数数据彼此相同,则字符链(a,b)中的字符“b”与字符链(b,c)中的字符“b”是相同字符。这意味着这两个字符链是一连续的字符串,即,有字符串“abc”。
如果出现次数互不相同,则索引文件搜索部分7在步骤s10中获得接在具有较小出现次数数据的字符链后面的字符链的次数数据,并从步骤s5重复处理。
在图8的情况中,因为(a,b)的出现次数数据是(1,1),而(b,c)的出现次数数据是(2,1),因此字符链(a,b)的第二个字符(b)的出现次数数据与字符链(b,c)第一个字符(b)的出现次数数据不相同(COM1),索引文件搜索部分7在字符链(a,b)具有较小的出现次数值后,获得同一组中的记录号1的出现次数数据(2,2)。
然后,因为出现次数数据处于同一记录号和同一组中,所以索引文件搜索部分7比较这两个出现次数数据(COM2)。因为这两个出现次数数据都是2,所以搜索到字符串“abc”。
当出现次数数据相同时,即,如果有要被搜索的字符串时,则在步骤s11中用以下公式从组号和记录号中计算记录号。
记录号=65536*组号+组中的记录号然后,在步骤s12中,索引文件搜索部分7使用图4所示存储在记录号对应性表格存储部分3中的对应性表格,从记录号中获得文件号和页号。
在接着的步骤s13中,索引文件搜索部分7输出在步骤s12中获得的文件号和页号作为将要搜索的文件号。重复此处理,直到处理了最后一个数据。
索引文件产生部分5产生索引文件,它包括至少一个用于存储每个组号数据的标题60,以及接在标题60后用于存储相对记录号数据以及相应的索引数据的索引数据区62。标题60和每个索引数据区具有相同的大小。
如上所述,在此实施例的数据搜索装置中,当登记文件时,把记录号分配给每一页,把记录号分组并转换成将被控制的相对记录号,从而每一组可重复使用同一范围内的记录号。
在此实施例中,由包括两个字符的字符链的出现次数数据提供索引文件。然而,对于索引文件也可使用代表字符串出现的其它数据,诸如字符串的绝对位置数据。此外,在此实施例中,每一页提供登记的一个记录。然而,也可在每个预定部分提供一个记录,诸如被句号(period)等分段数据分段的每个文件、每个句子或每个段落。
将描述第二实施例。
图11是第二实施例数据搜索装置的方框图。
第二实施例的数据搜索装置包括请求接收部分12,可接收用于各种处理的请求;记录号提供部分13,用于依据从文件号和页号中唯一确定记录号的法则提供记录号;相对编号部分14,用于对由记录号提供部分13提供的记录号进行分组;索引文件产生部分15,用于产生索引文件,它包括被相对编号部分14转换的相对记录号和将被登记的数据;索引文件存储部分16,用于存储索引文件产生部分15产生的索引文件;索引文件搜索部分17,用于使用存储在索引文件存储部分16中的索引文件进行数据搜索;绝对编号部分18,用于把索引文件搜索部分17搜索的记录的相对记录号转换成绝对记录号;文件号转换部分19,用于通过记录号提供部分13进行的逆变换从记录号中提供文件号和页号;以及搜索结果输出部分20,用于输出文件号作为搜索结果。
首先,将描述登记文件的操作。图12是示出第二实施例的文件登记操作的流程图。图13是示出第二实施例的文件记录号的示意图。
当用户对请求接收部分12输入登记请求时,请求接收部分12接收此登记请求。然后,记录编号部分13用从文件号和页号唯一确定记录号的法则提供记录号。从以下公式计算此记录号。
记录号=(文件号-1)*文件中的最大页数+页号这里通过把一文件中的页数设定为如图13所示的预定数目可唯一地确定记录号。
在此处理后的登记文件的处理类似于图2所示的从步骤s3到s8的处理。
基本上通过图9和10所示的处理进行搜索操作。然而,通过以下公式在步骤12中从记录号计算文件号和页号。
文件号P=记录号/文件的最大页数+1页号=记录号%文件的最大页数如上所述,在第二实施例的数据搜索装置中,可通过将记录号分组和用相对记录号进行控制来控制大量记录号,从而可通过从一文件的最大页数和页号唯一确定记录号的法则分配页号。因此,不必产生第一实施例中所需的对应性表格。此外,如果由于更新文件使页数增加,也可在预定的最多页内对记录号进行规则地编号。
此外,如果某一至记录号的其它转换能从文件号和页号唯一确定记录号,则它也可应用于此实施例,诸如记录号=文件的最大数目*(页数-1)+文件号将描述第三实施例。
第三实施例的结构和操作类似于第一实施例。第一和第三实施例的不同之处在于还提供了插入区产生部分11。插入区产生部分11在索引文件产生部分5把索引文件存入索引文件存储部分6时产生插入区,并把出现次数数据存入插入区中。
类似于图2所示从步骤s1到s4的处理进行文件的登记操作。
图14示出第三实施例索引文件产生处理的流程图。
在步骤s41中,类似于第一实施例索引文件产生部分那样产生包括两个字符的字符链出现次数数据。索引文件产生部分5在步骤s42中确定是否有用于存储出现次数数据的插入区。如果没有用于存储出现次数数据的插入区,则插入区产生部分11在步骤s43产生预定大小的存储区。如果在步骤s42中有用于存储出现次数数据的插入区,则索引文件产生部分5在步骤s44把出现次数数据存入插入区。
图15是示出第三实施例的索引文件的示意图。图16是示出第三实施例的用于产生索引文件的数据的示意图。
假定组1中具有记录号1的句子为“ababcbcababc”,在组1中具有记录号2的句子为“bbaabbcabc”,在组2中具有记录号1的句子为“bcababcbc”,以及在组2中具有记录号2的句子为“acbcabbaabc”。然后,类似于第一实施例,索引文件产生部分5产生代表字符链(a,b)出现次数数据的索引文件,如图16所示还在每一组中插入具有预定大小的插入区。
把出现次数数据加到索引文件的情况是再登记文件,并更新已登记的文件,于是应更新出现次数数据。
在此处理后,类似于图2所示第一实施例步骤s6到s7的处理进行数据登记处理,以完成数据登记处理。
类似于图9和10所示的处理进行搜索操作。
如上所述,在第三实施例的数据搜索装置中,因为产生具有预定大小的插入区。因此,如果更新被登记的文件或再登记新文件,则可把出现次数数据加入插入区,从而可防止由于插入数据而引起的登记速度的降低。
在此实施例中,由相对编号提供记录号。然而,也可用未被相对编号的一般记录号控制记录号。
权利要求
1.一种数据搜索装置,其特征在于包括输入装置,用于接收包括搜索请求数据的搜索请求和登记请求;分段装置,用于响应于来自所述输入装置的所述登记请求依据包含在所述数据中的分段数据把将被登记的数据划分成记录单元;编号装置,用于对所述记录进行分组和编号从而把每个预定数目的所述记录分成一组,并用于从被编号和分组的记录中产生组号数据和相对记录号数据;存储装置,用于相应地存储所述组号数据和所述相对记录号数据;以及搜索数据产生装置,用于依据来自所述输入装置的所述搜索请求数据以及所述存储装置中的所述组数据和相对记录号数据产生和输出将被用于搜索一个所述记录的搜索数据。
2.一种数据搜索装置,其特征在于包括请求接收装置,用于接收包括搜索数据的搜索请求和登记请求;记录号提供装置,用于响应于所述登记请求把记录号数据提供给每个记录,所述每个记录是将被登记的一个数据单元;相对编号装置,用于把所述记录号数据分组,并把所述记录号数据转换成组号数据和每个所述组内的相对记录号数据;索引文件产生装置,用于从所述数据和所述相对记录号数据产生索引文件;索引文件存储装置,用于存储所述索引文件;索引文件搜索装置,用于响应于来自所述请求接收装置的所述搜索请求,依据所述索引文件存储装置中的所述索引文件,搜索由所述搜索数据所指出的一个记录;绝对编号装置,用于把所述被搜索的一个记录的相对号数据和组号数据转换成所述记录号数据;以及搜索结果输出装置,用于依据来自所述绝对编号装置的记录号数据输出搜索结果。
3.如权利要求2所述的数据搜索装置,其特征在于所述记录号提供装置产生表示所述记录号数据与包含在所述数据中的分段数据之间对应性的记录号对应性表格,所述搜索结果输出装置依据所述记录号对应性表格输出来自绝对编号装置的所述记录号数据的所述搜索结果。
4.如权利要求2所述的数据搜索装置,其特征在于所述索引文件产生装置产生所述索引文件,所述索引文件包括至少一个用于存储每个所述组号数据的标题,以及接在所述标题后用于存储相对记录号数据和相应的所述索引数据的所述索引数据区,所述标题和每个所述索引数据区具有相同的大小。
5.一种数据搜索装置,其特征在于包括请求接收装置,用于接收搜索请求和登记请求;记录号提供装置,用于响应于所述登记请求依据包含在数据中的分段数据,通过唯一确定所述记录号数据的法则,把所述记录号数据提供给每个记录,所述每个记录是将被登记的所述数据的一个单元;相对编号装置,用于把所述记录分组从而所述记录号和至少一个备用记录构成所述组中的一组,并从被分组的记录号中产生组号数据和相应的相对号数据;索引文件产生装置,用于使用所述相对记录号数据和所述组号数据从所述数据中产生索引文件;索引文件存储装置,用于存储所述索引文件;索引文件搜索装置,用于响应于来自所述请求接收装置的所述搜索请求,依据所述索引文件存储装置中的所述索引文件,搜索由所述搜索数据所指出的一个记录;绝对编号装置,用于把被搜索的一个记录的相对号数据和组号数据转换成所述记录号数据;以及搜索结果输出装置,用于依据来自所述绝对编号装置的记录号数据输出搜索结果。
6.如权利要求2所述的数据搜索装置,其特征在于还包括插入区产生装置,用于在所述索引存储装置中提供一存储空间,以在今后所述索引文件存储装置存储所述索引文件时把所述索引数据存入所述索引文件存储装置。
7.如权利要求5所述的数据搜索装置,其特征在于还包括插入区产生装置,用于在所述索引存储装置中提供一存储空间,以在今后所述索引文件存储装置存储所述索引文件时把所述索引数据存入所述索引文件存储装置。
全文摘要
揭示了一种数据搜索装置,该装置包括请求接收部分,接收搜索请求和登记请求;记录号提供部分,把记录号数据提供给每个记录;相对编号部分,把记录号数据分组及转换成组号数据和相对记录号数据;索引文件产生部分,产生索引文件;索引文件存储部分,存储索引文件;索引文件搜索部分,搜索由搜索数据指出的记录;绝对编号部分,把被搜索记录的相对号数据和组号数据转换成记录号数据;以及搜索结果输出部分,依据记录号数据输出搜索结果。
文档编号G06F17/30GK1162154SQ97102618
公开日1997年10月15日 申请日期1997年2月12日 优先权日1996年3月12日
发明者木下哲也, 小山隆正, 菊池忠一 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1