管理数据库的数据库管理系统的制作方法

文档序号:6651089阅读:137来源:国知局
专利名称:管理数据库的数据库管理系统的制作方法
技术领域
本发明一般涉及数据库管理系统、全文(full-text)搜索装置和全文搜索方法,尤其涉及一种通过延迟更新而完成合并处理的数据库管理系统,以及用于从多个文档数据中搜索包含一特定字符串的文档的全文搜索装置和方法。本发明适用于管理大量文档数据的系统,诸如文档管理系统、电子图书馆系统以及专利公开文献检索系统。
背景技术
在关系数据库中,用表格来表示和管理数据。所述表格由元组(tuple)的集合组成,其中每个元组是一列属性值。并且,表格本身存于文档中。
数据库的操作分为以下四种操作。
(1)搜索(检索)操作这是提供与属性值有关的条件作为搜索条件,以检索与所述条件相匹配的元组的操作。
(2)插入操作这是把具有给定属性值的新元组插入表格的操作。
(3)更新操作这是把从表格中选出的元组的属性值变更为新值的操作。
(4)删除操作这是删除从表格中选定的元组的操作。
在下文中,上述插入操作、更新操作和删除操作一起被称为变更操作。
在使用关系数据库的系统中,执行搜索操作的响应时间是一项重要的性能指标。
因此,为了缩短搜索响应时间,而出现了一种利用索引文件建立关系数据库的方法。
该索引文件包括从一个或更多属性值转化而来的特定结构,以快速估算属性值的状态。
另一方面,在变更操作中,更新索引文件所需的时间是影响执行性能的一个原因。
在使用索引文件的常用形式中,由于与搜索操作相比很少需要变更操作就只运行搜索操作;大量变更操作是在晚上系统停止运行时执行的。因此,通过变更操作的响应时间来衡量性能。
然而,在在线的系统中请求实时特性的时候,变更操作的响应时间就很重要了。
为了解决上述问题,日本已公开专利申请No.10-143412所披露的“数据库管理系统”中,要数据库的写入在被反映到磁盘之前临时保存在非易失性存储器中,利用非易失性存储器作为磁盘高速缓冲存储器来代替磁盘查阅相应的数据。
然而,因为只有简单结构的数据能被保存在磁盘高速缓冲存储器中,所以存在不能使用高性能索引文件的问题。
此外,日本已公开专利申请No.2000-163294所披露的“数据库管理方法和设备以及记录其程序的机器可读记录介质”中,对次级存储器中的数据库的访问和更新是在主存储器中的数据缓冲器中完成的,更新的页面反映到数据库与应用程序的处理过程不同步,从而只用一组数据缓冲器来完成延迟更新处理;这样降低了对主存储器容量的需求。
然而,因为只有具有简单结构的数据能保存在此数据缓冲器中,所以就存在不能使用高性能索引文件的问题,如同日本已公开专利申请No.10-143412一样。
当多个用户同时使用一个数据库系统时,搜索操作和变更操作是在不同的时候请求的。在这期间,使用事务处理以保持数据的一致性。在(1)“‘事务处理原则(Principles of Transaction Processing)’Philip A Bernstein,EricNewmarker著;Nikkei商务出版公司(Nikkei Business Publication,Inc)”中详细解释了事务处理。
完全独立的处理保证了任何时刻数据的一致性。然而,并行执行性的降低,将导致整体处理能力的降低。为了解决上述问题,使用了独立标准(isolation level)的概念。在(2)“‘ANSI SQL独立标准评述(A Critique of ANSISQL Isolation Levels)’Hal Bereson,Philip A Bernstein,Jim Gray,Jim Melton,Elizabeth J.O′Neil著;Patrick E.O′Neil Proc.ACM SIGMOD Conf.(Jun.1995)第1-10页”中详细解释了独立标准。
为了解释上述传统技术中的问题,提出了把用于分成多个部分的全文搜索的数据保存部件(反向文件(inverted file))安排在一起的合并操作的想法。
当要被合并的反向文件中的数据的数量达到一界限值时,启动合并操作。这种合并操作有两种类型一是同步合并,其完成与反向文件的插入操作相同的一系列操作(前台操作)那样的合并操作;另一个是异步合并,其完成与插入操作不同的操作(后台操作)那样的合并操作。
在异步合并中,为了在合并期间正确地执行插入,必须专门地处理要被合并的反向文件。因此,在专门处理期间,合并操作和插入操作均被延迟处理,结果,使得插入操作的响应变慢。
此外,最近几年,随着信息通讯技术的发展,电子文档和与该文档有关的信息通过internet等大量发布。因此,提出了用于快速、准确地搜索想要的文档的文档搜索设备。
在这种文档搜索设备中,采用了关键词搜索方法和全文搜索方法。使用全文搜索方法的全文搜索设备将任一给定的搜索字符串与要搜索的全部文档进行比较,以提取出含有搜索字符串的全部文档。这样,与关键词搜索方法不同,使用全文搜索方法的全文搜索设备不需花费大量人力来预先提供所有要被搜索文档的关键词。提出了全文搜索设备的各种类型,其中一种类型是采用了反向(索引)文件的方法的设备。在反向文件的方法中,事先建立记录了含有字符/字/N个字符列(n个字符的结合)的文档或记录了其在文档中出现的位置的索引文件,作为用于搜索的辅助文档;根据全文搜索,搜索通过只利用反向文件完成。这样,反向文件的方法能够实现相当高速的搜索,这对需要高速搜索大量文档的系统来说是有很好的效果的。
此外,一般的全文搜索方法和反向文件方法在“信息检索算法(Information Retrieval Algorithm)”(Kenji Kitasato、Kazuhiko Tsuda、MasamiShishibori著;Kyoritsu Shuppan Co.,Ltd.;160-179页)、日本已公开专利申请No.1l-073429“相关技术的描述”(Description of the Related Art)以及1998年度全文搜索系统会议活动报告(http//www.ftsanet.com/dbtokyo99/Db99.htm)中做了详细描述,并且其也是公知的,这里就不再解释。
当采用反向文件方法的常规技术时,日本专利No.3024544(日本已公开专利申请No.9-265420),描述了一种信息搜索装置,其除搜索索引文件之外,还存储了实时处理数据,以便在搜索索引文件正在被更新的时候也能完成搜索处理。此外,日本已公开专利申请No.7-146880描述了一种文档搜索装置及方法,其在比主索引小的子索引中注册一新文档,由此缩短注册时间。
然而,在包括上述日本已公开专利申请中所描述的反向文件方法中,通常需要建立比原始数据大几倍的反向文件。因此,随着注册文档数据的数量的增长,反向文件方法的全文索引需要更长的用于进行注册/删除处理的时间。因此,从用户的角度看,这样的全文搜索装置中,进行注册/删除处理的响应时间变长了。

发明内容
本发明的首要目的是,提供一种克服了上述问题的改进的且有用的数据库管理系统、全文搜索装置和全文搜索方法。
本发明的又一特定目的是,提供一种数据库管理系统,其能避免在执行异步合并时插入操作的响应的恶化,并提高对大量搜索请求的总响应,以及提供全文搜索装置和全文搜索方法,其从用户的角度看能缩短注册和删除处理的响应时间,还能消除在一处理不能执行期间的时间。
为了完成上述目标,根据本发明的一个方面,提供了一种管理数据库的数据库管理系统,所述系统包括,第一数据保存部件,其用于快速执行数据的搜索操作及低速执行数据的变更操作的搜索;第二数据保存部件,每个都用于慢速执行的数据的搜索操作及快速执行数据的变更操作的插入和删除;数据传送部件,其将数据从每个第二数据保存部件传送到第一数据保存部件,以便反映插入操作或删除操作的结果;数据库操作请求处理部件,其执行对数据库的操作请求;事务处理部件,其保证了数据传送部件和数据库操作请求处理部件之间的数据的一致性;以及文档转换部件,其在对数据库的操作请求和异步合并处理之间将第一数据保存部件转换为第二数据保存部件,以便当一个第二数据保存部件用于异步合并处理时,另一个第二数据保存部件用于对数据库的操作请求。
根据本发明,不需要在合并过程和插入操作之间进行单独操作,这样就避免了插入操作的响应的恶化,并且整体上减少了响应搜索请求的总量。
本发明的其它目的、特性和优点将在下面结合相应的附图的详细描述中更加显而易见。


图1是说明数据库管理系统结构的方框图。
图2是体现数据库管理系统实例的结构框图。
图3是表示数据库操作请求处理部件的处理过程的一个实例的流程图。
图4是表示数据传输部件的处理过程的一个实例的流程图。
图5是表示根据本发明第一实施例的数据库管理系统的结构的方框图。
图6是说明根据本发明第一实施例的文件转换部件的操作的框图。
图7是表示根据本发明第二实施例的数据库管理系统的结构的方框图。
图8是说明根据本发明第二实施例的文件转换部件的操作的框图。
图9是说明根据本发明第三实施例的文件转换部件的操作的框图。
图10是表示根据本发明第四实施例的数据库管理系统的结构的方框图。
图11是表示根据本发明第四实施例的在数据库操作请求处理部件中搜索请求的处理过程的流程图。
图12是说明根据本发明第四实施例的监视计时器的处理过程的流程图。
图13是表示根据本发明第四实施例的数据传输部件中的合并处理的处理过程的流程图。
图14是说明本发明第六实施例的全文搜索装置的方框图。
图15是表示图14所示的全文搜索装置的单机实例的硬件结构的框图。
图16是表示图14所示的全文搜索装置的服务器/客户机模式实例的硬件结构的框图。
图17是说明图14所示的全文搜索装置的处理的框图,并示出了一个全文索引的实例。
图18是说明把在图17所示的全文索引中标记为“全文”的反向列表作为实例来说明合并处理的图。
图19是说明根据本发明第八实施例的全文搜索装置的方框图。
图20是说明图19所示的全文搜索装置中处理实例的第一流程图。
图21是说明图19所示的全文搜索装置中处理实例的第二流程图。
图22是说明图19所示的全文搜索装置中处理实例的第三流程图。
图23是说明根据本发明第九实施例的全文搜索装置的方框图。
图24是说明图23所示的全文搜索装置的处理实例的第一流程图。
图25是说明图23所示的全文搜索装置的处理实例的第二流程图。
图26是说明图23所示的全文搜索装置的处理实例的第三流程图。
图27是说明根据本发明第十实施例的全文搜索装置的方框图。
图28是说明图27所示的全文搜索装置的处理实例的第一流程图。
图29是说明图27所示的全文搜索装置的处理实例的第二流程图。
图30是说明图27所示的全文搜索装置的处理实例的第三流程图。
图31是说明根据本发明第十一实施例的全文搜索装置的方框图。
图32是说明图31所示的全文搜索装置的处理实例的第一流程图。
图33是说明图31所示的全文搜索装置的处理实例的第二流程图。
图34是说明图31所示的全文搜索装置的处理实例的第四流程图。
具体实施例方式
下面将参照附图,详细描述本发明的实施例。
<系统结构>
图1是说明数据库管理系统结构的方框图。下面将以关系数据库作为数据库,作出详细说明,但是本发明也适用其它的数据库。
图1所示的数据库管理系统包括数据库操作请求输入部件1、事务处理部件2、数据库操作请求处理部件3、第一数据保存部件4、第二数据保存部件5,以及数据传输部件6。
从数据库操作请求输入部件1输入对数据库的操作请求,并且由数据库操作请求处理部件3处理操作请求。
第一数据保存部件4用于数据库的搜索(检索)操作,以及数据传输的变更操作。
第二数据保存部件5用于数据库的插入操作、删除操作及更新操作,以及在数据传输时的删除操作。
在第一数据保存部件4以及第二数据保存部件5中处理的对象是索引文件,例如具有关系数据库,这些索引文件为了引用数据这种目的被彼此相互关联地保存。
数据传输部件6从第二数据保存部件5中读取元组,并执行向第一数据保存部件4中插入元组、更新第一数据保存部件4中的元组以及从第一数据保存部件4中删除元组的操作。
事务处理部件2执行专用控制,用于控制不同时请求的搜索操作和变更操作请求的执行的次序,以保持数据的一致性的,并记下记录信息,所述记录信息用于在取消变更操作的情况下在启动一个事务处理之前恢复状态。
在下文中,将更进一步地详细说明上述部件。
《数据库操作请求输入部件1》图2是体现了数据库管理系统的结构的示例的框图。用输入终端25来实现数据库操作请求输入部件1的功能。服务器主机20中具有数据库、CPU21、包括程序区域22a和数据区域22b的存储器22,以及硬盘23,它们通过数据总线24彼此连接。多个输入终端25通过LAN26与此服务器主机26连接。在此实例中的数据库操作请求输入部件1可以使多个用户输入数据库操作请求。
用户从诸如输入终端25,以SQL语句形式输入表示数据库操作请求的字符串。数据库操作请求通过LAN26传送到服务器主机20,并在服务器主机20中进行处理。处理的结果再通过LAN26传送给输入终端25,并且以在输入终端25的显示器上显示的方式传递给用户。
《数据库操作请求处理部件3》图3是一个表示数据库操作请求处理部件3的处理过程的一个实例的流程图。
根据数据库操作请求的类型划分处理的内容。在本实施例中,为表中的每个元组提供唯一的ID(元组ID),这样每个元组都可以通过元组ID识别。
当数据库操作请求处理部件3收到数据库操作请求时(步骤S1),数据库操作请求处理部件3判断数据库操作请求是否是插入操作(步骤S2)。当数据库操作请求是插入操作时,数据库操作请求处理部件3获得新元组的元组ID(步骤S3),并且此后,执行将元组插入用于插入的第二数据保存部件5的插入操作(步骤S4),并且将其结果返回(步骤S5)。
当步骤S2中数据库操作请求不是插入操作时,数据库操作请求处理部件3对用于搜索(检索)的第一数据保存部件4、用于插入的第二数据保存部件5以及用于删除的第二数据保存部件5中的每一个执行搜索操作(步骤S6-S8),然后由各搜索结果集合Rr、Ri及Rd形成最终搜索结果集合R(R=Rr+Ri-Rd;其中+表示逻辑“或”,-表示逻辑“非”)作为结果(步骤S9)。
接着,在步骤S10中当数据库操作请求是搜索操作时,数据库操作请求处理部件3返回其结果(步骤S5)。在步骤S10中当数据库操作请求不是搜索操作时,数据库操作请求处理部件3判断数据库操作请求是否是删除操作(步骤S11)。当数据库操作请求不是删除操作时,数据库操作请求处理部件3利用提供有在与搜索操作相似的过程中所选定的元组变更而来的一新值的元组,对用于插入的第二数据保存部件5执行元组的更新操作(步骤S15),并返回其结果(步骤S5)。
当在步骤S11中数据库操作请求是删除操作时,并且当在与搜索操作相似的过程中所选定的元组存在于Ri中时(步骤S12中的是),数据库操作请求处理部件3对用于插入的第二数据保存部件5执行删除操作(步骤S13),并返回其结果(步骤S5)。当元组不在Ri中时,即元组在Rr中时(步骤S12中的否),数据库操作请求处理部件3执行将元组插入用于删除的第二数据保存部件5的插入操作(步骤S14),返回其结果(步骤S5),并结束处理过程。
《第一数据保存部件4》第一数据保存部件4是用于搜索的数据保存部件,其用于数据库操作请求处理部件3执行搜索操作以及数据传输部件6执行的变更操作。
第一数据保存部件4能高速执行搜索操作,但执行变更操作时速度就相对低。例如,能执行全文搜索的全文搜索服务器就能用作第一数据保存部件。
《第二数据保存部件5》这里有分别用于插入和删除两种类型的第二数据保存部件5。
用于插入的第二数据保存部件5用于由数据库操作请求处理部件3执行的插入操作、删除操作及更新操作,并也可用于数据传输部件6执行的删除操作。
用于删除的第二数据保存部件5用于由数据库操作请求处理部件3执行的删除操作,并且也可以用于由数据传输部件6执行的删除操作中。
第二数据保存部件5能高速执行插入操作以及变更操作。例如,由OS管理的普通文件可以作为第二数据保存部件5。
当第二数据保存部件5不能向普通文件那样执行搜索操作时,第二数据保存部件5连续地返回其所保存的元组,数据库操作请求处理部件3评估搜索条件(其被称为整个搜索)。
因为与第一数据保存部件4所保存的元组的数量相比,第二数据保存部件保存了很小数量的元组,所以执行整体搜索并不影响响应时间。
《数据传输部件6》图4是一个表示数据传输部件6的处理过程的一个实例的流程图。
在数据传输部件6执行的数据传输中,元组从用于插入的第二数据保存部件5中一个接一个地读出,并根据元组的值向第一数据保存部件4插入或更新元组。然后,从用于插入的第二数据保存部件5中删除被反映的元组。
接下来,元组从用于删除的第二数据保存部件5一个接一个地读出,并从第一数据保存部件4中删除这些元组,然后被反映的元组从用于删除的第二数据保存部件5中删除。
在图4中,当数据传输部件6从用于插入的第二数据保存部件5中获得每个元组时(步骤S21),数据传输部件6在第一数据保存部件4中搜索具有相同元组ID的元组(步骤S22)。当存在相同元组时(步骤S23中的是),数据传输部件6执行第一数据保存部件4中的元组的更新(步骤S24),同时删除用于插入的第二数据保存部件5中的元组(步骤S25)。
当不存在相同的元组时(步骤S23中的否),数据传输部件6执行向第一数据保存部件4中插入元组的操作(步骤S29),同时从用于插入的第二数据保存部件5中删除该元组(步骤S25)。
完成步骤25之后,数据传输部件6从用于删除的第二数据保存部件5中获得每个元组(步骤S26),执行从第一数据保存部件4中删除该元组的操作(步骤S27),从用于删除的第二数据保存部5中删除该元组(步骤S28),同时结束处理过程。
《事务处理部件2》事务处理部件2执行专用控制,用于控制不同时请求的搜索操作和变更操作的执行次序以保持数据的一致性,并记下记录信息,所述记录信息用于在取消变更操作的情况下在启动一个事务处理之前恢复状态。
专用控制不仅仅被用作在多个用户请求的数据库操作之间的专用控制,也可以用作数据库操作请求处理部件3和数据传输部件6之间的专用控制。
利用上面所提到的文献(1)中说明的多粒度(granularity)锁可以实现不同的独立标准(isolation level)。要被锁定的目标是表格、元组以及文件,文件由用于插入和删除的第一数据保存部件4和第二数据保存部件5组成。
在专用控制和登录中,组成文件的第一数据保存部件4和第二数据保存部件5可以作为一个目标一起处理,而不考虑其结构。
下面将描述实现确认读(READ COMMITTED)的独立标准的方法。首先是关于锁的下列预处理。
-表格的锁是下列任一模式。
(表1)

-元组的锁是S模式或X模式。
-元组的S-锁可以在引用之后的任何时刻取消。
-元组的X-锁只有在一个事务结束时才可以取消。
-访问文件之前和之后,将一专用锁存器应用于所述文件。
下面将描述根据数据库的操作类型而实现的过程。
(1)搜索操作0.在启动一操作之前在目标表格上加IS-锁。
1.锁存一文件。
2.搜索与一搜索条件匹配的元组。
3.在获得的元组上加S-锁。
4.当不能加S-锁时,取消文件的锁存,并返回1。
5.当可以加S-锁时,将元组添加到搜索结果。
6.取消元组的锁定。
7.取消文件的锁存。
(2)插入操作
0.在启动一操作之前在目标表格上加IX-锁。
1.锁存一文件。
2.获得一新的元组ID。
3.在元组上加X-锁。
4.在日志上记录元组插入操作。
5.将元组插入文件。
6.取消文件的锁存。
(3)更新操作0.在启动一操作之前在目标表格上加IX-锁。
1.锁存一文件。
2.搜索一与一将要更新的元组的条件匹配的元组。
3.在获得的元组上加X-锁。
4.当不能加X-锁时,取消文件的锁存,并返回1。
5.当可以加X-锁时,在日志上记录元组更新操作。
6.执行元组的更新。
7.取消文件的锁存。
(4)删除操作0.在启动一操作之前在目标表格上加IX-锁。
1.锁存一文件。
2.搜索与将要删除的元组的条件匹配的元组。
3.在获得的元组上加X-锁。
4.当不能加X-锁时,取消文件的锁存,并返回1。
5.当可以加X-锁时,在日志上记录元组删除操作。
6.执行元组的删除。
7.取消文件的锁存。
在结束事务处理时,执行下列处理。
(1)托付(commitment)在启动一个变更操作之前在目标表格上加IX-锁时执行托付1.在日志上记录托付操作。
2.由被托付的事务处理请求取消所有的锁。
(2)重新运行(rollback)(异常中止)
在启动一个变更操作之前在目标表格上加IX-锁时执行一重新运行1.在日志上记录重新运行操作。
2.根据日志撤销一数据操作。在此过程中,锁存需要的文件。
3.通过重新运行事务处理请求,取消所有的锁。
下面将描述合并的基本操作。在合并中,守护程序在后台利用下面三个文件将一个小型反向文件合并到一个大型反向文件。
-大型反向文件合并的目标文件-用于插入的小型反向文件要被合并的用于插入的文件-用于删除的小型反向文件要被合并的用于删除的文件下面,将概要地描述守护程序的操作。
此守护程序具有三个线程用与执行程序相同的线程进行操作的主线程、执行合并的守护线程、连续管理合并的定时器线程。
在主线程的基本操作中,主线程判断小型反向文件的大小是否超出了插入到小型反向文件的预定值。当文件大小超出该预定值时,主线程将目标大型反向文件和两个小型反向文件的文件ID传送给守护线程,并引导合并的执行,从而根据大小来执行合并。
在定时器线程的基本操作中,该定时器线程在恒定的时间间隔检验定时,并判断是否经过了指定的时间。当已经经过了指定的时间时,定时器线程将目标大型反向文件和两个小型反向文件的文件ID传送给与所有大型反向文件有关的守护线程,并引导合并的执行,从而根据该恒定的时间来执行合并。
根据收到的执行合并的指示,守护线程通过执行一系列的下述操作完成反向文件的合并。
1.启动默认的事务处理。
2.将元数据库作为一个整体加锁(操作目标元组,操作的内容读)。
3.在元数据库的数据表上加锁(操作目标元组,操作内容读)4.在与元数据库的数据库表中的目标数据库对应的元组上加锁(操作目标元组,操作内容读)。
5.在数据库上加锁(操作目标元组,操作内容读和写)。
6.在表上枷锁(操作目标元组,操作内容读和写)。
7.将反向文件置为合并状态。
8.合并多个插入小型反向文件的反列表。
9.清空合并的小型反向文件。
10.取消已合并的反向文件的状态。
11.结束处理。
接下来,基于上述的数据库管理系统,将描述根据本发明第一实施例的数据库管理系统。
<实施例1>
图5是一个表示根据本发明第一实施例的数据库管理系统的结构的方框图。
第一实施例中与图1中的相同的或者等同的部件用相同的附图标记表示,并且这里仅仅详细描述其不同之处。
如图5所示,数据库管理系统包括数据库操作请求输入部件1、事务处理部件2、数据库操作请求处理部件3、第一数据保存部件4、第二数据保存部件5、数据传输部件6以及文件转换部件7。
首先,具有多个第二数据保存部件5(用于插入和删除的反向文件)。
文件转换部件7判断第二数据保存部件5是用于数据库的操作还是用于合并处理。当第二数据保存部件5用于数据库操作时,文件转换部件7将数据库操作请求传送给用于数据库操作的第二数据保存部件5。当第二数据库保存部件5用于合并操作时,文件转换部件7在合并处理时,将合并处理请求传送给第一数据保存部件4。
在图5中,第一数据保存部件4相当于用于搜索的数据保存部件,第二数据保存部件5相当于用于插入和删除的数据保存部件。
图6是一个说明所述文件转换部件7的操作的框图。
首先具有两组第二数据保存部件5(用于插入和用于删除)。
文件转换部件7对两组数据保存部件5进行转换以便当一组第二数据保存部件5用于数据库操作时另外一组第二数据保存部件5用于合并操作。
文件转换部件7在合并处理的守护线程的操作中,转换所述两组第二数据保存部件5在上面提到的操作“7.将反向文件置为合并状态”中的用途。具体地,文件转换部件7将第一数据保存部件(大型反向文件)4置为合并状态,将用于数据库操作的第二数据保存部件5转换为用于合并处理的第二数据库保存部件,并将用于合并处理的第二数据保存部件5转换为用于数据库操作的第二数据保存部件,之后只把用于合并处理的第二数据保存部件(小型反向文件)5置为合并状态。
关于用于合并处理的第二数据保存部件5执行上面提到的操作“8.合并大量小型反向文件的反列表”及“9.清空该合并后的小型反向文件”。
<实施例2>
在上述的第一实施例中,当根据数据库操作请求同时发生大量的插入操作时,插入操作将在数据总量超过了用于数据库操作的第二数据保存部件5的容量之后继续执行,从而带来了性能降低的危险。
在根据本发明的第二实施例中,提供了三个或者更多第二数据保存部件,以便当用于数据库操作的第二数据数据保存部件5的数据的数量超过给定的界限值时,另一个没有使用的第二数据保存部件5转换为用于数据库操作的第二数据保存部件5。
图7是一个表示根据本发明第二实施例的数据库管理系统的结构的方框图。
第二实施例中与图1和前述的第一实施例中的相同的或者等同的部件用相同的附图标记表示,并且这里仅仅详细描述其不同之处。
如图7所示,数据库管理系统包括数据库操作请求输入部件1、事务处理部件2、数据库操作请求处理部件3、第一数据保存部件4、第二数据保存部件(用于插入和用于删除)5、数据传输部件6、文件转换部件7、以及数据量判断部件8。
图8是一个说明根据本发明第二实施例的文件转换部件7的操作的框图。
首先,具有三个或者更多的第二数据保存部件(用于插入和用于删除)5。另外,准备与多个所备第二数据保存部件5相应的参考队列60,以便第二数据保存部件5与每个参考队列60相互参考。另外,用于数据库操作的第二数据保存部件5指向参考队列60的首标位置,其余的第二数据保存部件用作用于合并处理的第二数据保存部件5及空的第二数据保存部件5。
数据量判断部件8监视用于数据库操作的第二数据保存部件5的容量。当容量等于或者超过预定的界限值时,数据量判断部件8通知文件转换部件7请求用于数据库操作的空的第二数据保存部件5。
当数据量判断部件8请求空的第二数据保存部件5时,文件转换部件7将用于合并处理的第二数据保存部件5中的空的第二数据保存部件5转到参考队列60的首标位置,并把先前位于首标位置的用于数据库操作的第二数据保存部件5转到参考队列60的第二位置或者其后的其它位置。这样,就转换了用于数据库操作和用于合并处理的第二数据保存部件5。
文件转换部件7在合并处理的守护线程的操作中,转换所述第二数据保存部件5在上面提到的操作“7.将反向文件置为合并状态”中的用途。尤其是,当第二数据保存部件5中的数据的数量超过该给定的界限值时,文件转换部件7重新排列操考队列60,将用于数据库操作的第二数据保存部件5转换为用于合并处理的第二数据库保存部件,并将用于合并处理的第二数据保存部件5转换为用于数据库操作的第二数据保存部件,之后只将用于合并处理的第二数据保存部件5置为合并状态。
根据第二数据保存部件5,执行上面提到的操作“8.合并大量小型反向文件的反列表”及“9.清空该合并后的小型反向文件”。
<实施例3>
在前述第二实施例中,所需的第二数据保存部件5的最大数量要预先确定,因此,除了在某刻有大量的数据库操作请求之外,部分第二数据保存部件5是没用的,这导致了资源的浪费。
在根据本发明的第三实施例中,根据需要动态的提供第二数据保存部件。
根据本发明第三实施例的数据库管理系统的结构与前面所述的第二实施例的数据库管理系统的结构相同,这里仅仅详细描述其不同之处。
图9是说明根据本发明第三实施例的文件转换部件7的操作的框图。
根据本发明第三实施例的数据库管理系统包括,用于注册当前使用的第二数据保存部件5的参考队列70,以及存有多个在参考队列70中注册的第二数据保存部件5的参考队列计数80。
用于数据库操作的第二数据保存部件5位于参考队列70的首标位置,其余的第二数据保存部件用作用于合并处理的第二数据保存部件5。
当数据量判断部件8请求空的第二数据保存部件5时,文件转换部件7动态地产生一个新的第二数据保存部件,并将此新的第二数据保存部件5设置在参考队列70的首标位置,把先前位于首标位置的用于数据库操作的第二数据保存部件5转到参考队列70的第二位置或者其后的其它位置,将参考队列计数80加一。这样,就转换了用于数据库操作和用于合并处理的第二数据保存部件5。
文件转换部件7在与前面所述的第二实施例中相同的时机转换了第二数据保存部件5的用途。但是,在上面所提到的操作“9.清空合并后的小型反向文件”中,删除曾经进行合并操作的第二数据保存部件5和与其相应的参考队列70,同时参考队列计数80减一。
<实施例4>
在数据库管理系统中,合并处理在索引单元中执行,这样甚至是在合并期间都可以执行搜索。
在搜索时,使用第一数据保存部件4和所有用于合并处理的第二数据保存部件5,从而迫使在合并处理之前和之后对一个索引单元实行专用控制。
另外,在处理搜索请求时,保存在用于合并处理的第二数据保存部件5中的数据的状态不利于搜索处理的执行;因此,进行过合并处理的状态对搜索更有利。
但是,当在合并处理期间输入大量的搜索请求时,由于在对搜索执行专用控制,合并处理就不能进行,用于合并处理的数据就持续地保持不利于搜索处理执行的状态。这样,就减慢了整个搜索的执行。
在根据本发明的第四实施例中,搜索处理和合并处理之间的专用控制利用事务处理部件2的专用机制执行。相应的,即使当输入大量的搜索请求时,合并处理也能高速完成,以便在整体上改善对搜索请求的全部响应。
图10是表示根据本发明第四实施例的数据库管理系统的结构的方框图。本发明第四实施例的数据库管理系统是以前面的第一实施例的数据库管理系统为基础的。可替代的,本发明第四实施例的数据库管理系统也可以以前面的第二或者第三实施例的数据库管理系统为基础。
第四实施例中与图1和前述的第一实施例中的相同的或者等同的部件用相同的附图标记表示,并且这里仅仅详细描述其不同之处。
如图10所示,数据库管理系统包括数据库操作请求输入部件1、事务处理部件2、数据库操作请求处理部件3、第一数据保存部件4、第二数据保存部件5、数据传输部件6、文件转换部件7、以及监视计时器9。
在下文中,将参照图11至图13的流程图描述本发明第四实施例的操作。
(1)搜索处理图11是表示在数据库操作请求处理部件3中搜索请求的处理过程的流程图。
首先,在启动搜索处理时,接收到搜索请求的数据库操作请求处理部件3在监视计时器9中设置一搜索中可延迟的最大时间(步骤S31)。
之后,数据库操作请求处理部件3请求事务处理部件2的专用机制,用于对搜索处理执行专用控制(步骤S32)。
在监视计时器9中设置最大可延迟时间之后,接着执行用于搜索处理的专用控制,这样搜索处理就可以执行了。
由此,数据库操作请求处理部件3清空监视计时器9(步骤S33),并使对数据库的搜索得以执行(步骤S34)。
在完成搜索时,数据库操作请求处理部件3请求专用机制取消搜索处理的专用控制,并结束该过程(步骤S35)。
图12是表示监视计时器9的处理过程的流程图。
监视计时器9处于待命状态直到数据库操作请求处理部件3向定时器设置最大延迟时间(步骤S41)。
当向定时器设置最大可延迟时间时(步骤S41中的是),监视计时器9在倒计时时休眠,直到到达最大可延迟时间(步骤S42,S43)。
当定时器达到最大可延迟时间时(步骤S43中的是),监视计时器9请求合并处理释放对搜索处理的专用控制,并进入待命状态直到向下一个定时器设置最大可延时时间(步骤S44及S41)。
(2)合并处理图13是表示数据传输部件6中的合并处理的处理过程的流程图。
在合并处理中,数据传输部件6请求事务处理部件2的专用机制,用于对合并处理执行专用控制,以便临时禁止在合并处理期间的搜索请求(步骤S51)。
用于合并处理的专用控制完成之后,数据传输部件检测监视计时器9是否请求释放锁定(专用控制)(步骤S52)。当没有请求释放该锁定时(步骤S52中的否),数据传输单元6从用于合并的第二数据保存部件5(用于插入和用于删除)中提取一个是合并处理的单元的反列表,并为一个索引单元对第一数据保存部件4执行合并处理(步骤S53)。
重复步骤S52及步骤S53直到反列表结束(步骤S54中的是)。
在反列表(索引单元)结束时(步骤S54中的否),合并处理也结束,数据传输部件6请求专用机制以取消用于合并处理的专用控制,并结束该过程(步骤S55)。
另一方面,在步骤S52,当请求释放锁时(步骤S52的是),数据传输单元6依据用于一个索引单元的反列表的合并处理的完成请求取消用于合并处理的专用控制(步骤S56)。
数据传输单元6暂时中断合并处理,并为搜索处理释放CPU(步骤S57)。然后数据传输部件6返回到步骤S51,以便再次请求用于合并处理的专用控制。
由此,当释放CPU时执行搜索,此期间不执行反列表的合并处理。这样搜索处理可以安全地执行。
<实施例5>
更进一步地,本发明并不局限于以上的实施例。本发明的目的,也可以利用根据每个前述实施例的数据库管理系统的部件的程序功能来实现,其预先在诸如CD-ROM的记录介质中写入程序,将此CD-ROM安装在具有诸如CD-ROM驱动器的介质驱动的计算机中,在计算机的存储器或者存储装置中存储这些程序,并执行此程序。
在这种情况下,从记录介质中读出的程序实现了根据每个前述实施例的部件的功能。这样程序及存储了程序的记录媒体也包括在本发明的范围内。
此外,记录介质可以是诸如半导体介质的介质(例如,ROM,非易失性存储卡),光学介质(例如,DVD,MO,MD,CD-R),以及磁介质(例如,磁带,软盘)。
根据每个前述实施例的部件的功能不仅仅是通过执行加载的程序实现,其也可以用操作系统等实现,其根据所述程序的指令执行部分或者全部的实际处理。
另外,上面所提到的程序可以存储在服务器计算机的存储装置中,例如磁盘,并且通过下载等手段分发到通过诸如因特网的通信网络连接的用户计算机。在这种情况下,服务器计算机的存储装置也被包括在本发明的记录介质中。
<实施例6>
另外,根据本发明第六实施例的全文搜索装置可以将合并处理所需的时间限制为一个预定的时间,以便即使在注册文档数量增加的时候,其它处理的等待时间也限定为一个预定的时间,这样在整体上提高了系统的总处理能力。注册(插入)和删除的响应时间,在本申请的申请人已提交的专利申请中描述的全文搜索装置中缩短了,而在本全文搜索装置中又进一步缩短了。
在本申请的申请人已提交的专利申请中描述的全文搜索装置具有分别用于注册和用于删除的小型全文索引,这样就避免了注册和删除的响应时间的恶化。在搜索处理时,全文搜索装置向一大型全文索引的搜索结果中添加用于注册的小型全文索引的搜索结果,并从其中除去用于删除的小型全文搜索索引的搜索结果,从此形成返回给用户的搜索结果。这就是提高注册和删除的总处理能力的方法的应用(数据库管理系统),其利用了用于注册和删除的数据保存部件,所述用于注册和删除的数据保存部件不包括在用于搜索的数据保持部件中,这也在本申请的申请人已提交的另一专利申请中进行了描述,在全文搜索装置中应用反向文件的全文索引的方法,以便从用户的角度来看缩短了注册和删除的响应时间。即,在本申请的申请人已提交的专利申请中所描述的全文搜索装置中,数据传输部件利用由组成反向文件的全文索引的反列表而不是原始文档数据的方法,以便缩短数据传输所需的时间。
但是,随着注册的文档数据数量的增加,大型全文索引的反列表也变得巨大,并且用于搜索和删除的小型全文索引传输数据(反列表的合并处理)所需的时间也将变长了。
在本实施例中,记录数据传输所需的时间,并且当在一预定时刻的数据传输所需的时间超过预定的时间时,就改变启动下一数据传输的条件,以便利用更小的用于搜索或删除的小型全文索引来执行数据传输,从而缩短了数据传输所需的时间,同时也防止了数据传输所需的时间大大超出预定的时间。
图14是说明本发明第六实施例的全文搜索的方框图。图15是表示图14所示的全文搜索装置的单机实例的硬件结构的框图。图16是表示图14所示的全文搜索装置的服务器/客户机模式实例的硬件结构的框图。
根据本发明的全文搜索装置是一个用于从多个文档数据(多个电子文档)中搜索含有特定字符串的文档的装置。
如图14所示,在此第六实施例中,用于注册处理的文本数据、用于删除处理的文档标识符、用于搜索处理的搜索条件等等通过输入部件101输入,并分别提供给注册处理部件103、删除处理部件104及搜索处理部件105。注册处理部件103完成文档数据的注册处理。注册处理部件103对文档数据存储部件107和小型全文注册索引存储部件109执行注册处理。删除处理部件104完成文档数据的删除处理。在删除处理部件104执行的删除处理中,通过输入部件101所输入的文档标识符,读出存储在文档数据存储部件107中的文档数据;并且当其索引在小型全文注册索引存储部件109中注册过时,利用一文本分割部件106删除该索引;当该索引未在小型全文注册索引存储装置109中注册时,在小型全文删除索引存储部件110中记录该索引。另外,文本分割部件106在注册处理中,为了注册处理部件103将文档数据分割成部分字符串,在删除处理中为了删除处理部件104将文档数据分割成部分字符串,以及在搜索处理中为搜索处理部件105将搜索条件(一搜索字符串)分割成部分字符串。另外,利用搜索处理部件105,对大型全文搜索索引存储部件108、小型全文注册索引存储部件109以及小型全文删除索引存储部件110执行搜索处理。在搜索处理中,从大型全文搜索索引存储部件108和小型全文注册索引存储部件109的搜索结果中除去小型全文删除索引存储部件110的搜索结果,该扣除的结果作为搜索结果通过一输出部件102输出。
合并部件(数据传输部件)111实现大型全文搜索索引存储部件108、小型全文注册索引存储部件109以及小型全文删除索引存储部件110中的数据传输。合并时间存储部件(数据传输时间存储部件)112记录了数据传输所需的时间。
在图15中所示的单机硬件结构中,输入装置121相当于图14中的输入部件101,显示装置122相当于图14中的输出部件102。主控装置(CPU、存储器等)124相当于图14中的注册处理部件103、删除处理部件104、搜索处理部件105、文本分割部件106以及合并部件111。存储装置125相当于图14中的文档数据存储部件107、大型全文搜索索引存储部件108、小型全文注册索引存储部件109、小型全文删除索引存储部件110以及合并时间存储部件112。此外,输入输出控制装置123根据主控装置124的控制信号控制输入装置121和显示装置122。
在图16中的服务器/客户端的硬件结构中,客户端130的输入装置131相当于图14中的输入部件101,客户端130的显示装置132相当于图14中的输出部件102。客户端130的主控装置(CPU、存储器等)134和服务器150的主控装置152(CPU、存储器等)相当于图14中的注册处理部件103、删除处理部件104、搜索处理部件105、文本分割部件106以及合并部件111。服务器150的存储装置153相当于图14中的文档数据存储部件107、大型全文搜索索引存储部件108、小型全文注册索引存储部件109、小型全文删除索引存储部件110以及合并时间存储部件112。此外,客户端130的网络控制装置135和服务器150的网络控制装置151,通过网络140控制客户端130和服务器150之间的数据传输等。更进一步的,客户端130的输入输出控制装置133根据主控装置134的控制信号控制输入装置131和显示装置132。
下面将详细描述如上结构的全文搜索装置操作的实例。
《注册处理》在注册处理的执行中,首先,用户创建文档数据,并通过数据部件101注册该文档数据。注册处理部件103在文档数据存储部件107中存储该文档数据,并同时确定一表示该文档数据的标识符(文档标识符)。进一步,该注册处理部件103利用文本分割部件106从文档数据中获得部分字符串(标记)和该标记的出现位置信息。最后,注册处理部件103在小型全文注册索引存储部件109中记录该文档标识符和该标记的出现位置信息。另外,文本分割部件106可以使用诸如一N字符组构成一标记的方法或者进行字形分析并使一个字构成一标记的方法作为分割方法。下面将描述文本分割部件106使用一N字符组构成一标记的方法的实例;但是,这些实例也同样可以使用字形分析使一个字构成一标记的方法。
图17是一个说明图14所示的全文搜索装置的处理的框图,并示出了一个全文索引的实例。参照图17所示的实例,将详细描述反向文件方法的全文索引。
文档数据“文档1”和“文档2”的内容(通过文本分割部件106的分割处理获得的内容)在图17中分别由标记161和162表示。在图17中,每个文档左边的数字表示从字符串的起始位置开始的字符的个数。明确的,文档1中的“全文检索”(应当注意图17中用中文字符表示)从头开始出现在第十一个字符的位置,“方法”出现在第二十和第六十个字符的位置,以及“全文检索方法”出现在第三十一个字符的位置。在文档2中,“探索方法”从头开始出现在第一个字符的位置,“方法”出现在第二十四个字符的位置,以及“全文”出现在第三十和第四十二个字符的位置。
此外,在使两字符组构成一个部分字符串(标记)的情况下,文档中所有的部分字符串都要提取出来,并且每个部分字符串在文档中的出现位置(从头开始的字符的个数)都一起记录在索引中。例如,文档1中,“全文”出现在位置11和31处,并且“文检”出现在位置12和32处,这样这些位置就记载在索引中。除了在文档中的出现位置之外,例如在图17中由标记163所示格式的表示文档的文档标识符和出现次数也记载在索引中。例如,“全文”的反向文件即{1,2〔11,31〕}和{2,2〔30,42〕}分别表示“全文”在文档1中在位置11和31出现两次以及“全文”在文档2中在位置30和42出现两次。
《删除处理》在执行删除处理的过程中,首先,用户通过输入部件101输入要删除的文档的文档标识符。然后,删除处理部件104从文档数据存储部件107读取相应于文档标识符的文档数据。接下来,删除处理部件104利用文本分割部件106获得部分字符串(标记)及该标记在文档数据中出现的位置信息。此外,当文档标识符在小型全文注册索引中注册过时,该标记的出现位置信息就从小型全文注册索引存储部件109中删除。当文档标识符没在小型全文注册索引中有注册过时(即当文档标识符注册在大型全文搜索索引中时),文档标识符和该标记的出现位置信息就记录在小型全文删除索引存储器部件110中。此外,删除处理部件104在文档数据存储部件107中删除相应于文档标识符的文档数据。
《搜索处理》在执行搜索处理的过程中,首先,用户通过输入部件101输入搜索字符串。然后,搜索处理部件105利用文本分割部件106从搜索字符串中获得标记。此外,搜索处理部件105利用大型全文搜索索引存储部件108的大型全文搜索索引获得一组(Rs)包括搜索字符串的文档数据的文档标识符,并且利用小型全文注册索引存储部件109的小型全文注册索引获得一组(Ri)包括该搜索字符串的文档数据的文档标识符。接下来,该搜索处理部件105利用小型全文删除索引存储部件110的小型全文删除索引获得一组(Rd)包括该搜索字符串的文档数据的文档标识符。为了获得搜索结果(R),该搜索处理部件105对获得的文档标识符的组(Rs,Ri,Rd)进行如下一系列操作,并且通过输出部件102向用户输出如一组包括该搜索字符串的文档数据的文档标识符的搜索结果(R)。
R=Rs+Ri-Rd,
其中,+表示逻辑OR(或)操作符,-表示逻辑NOT(非)操作符。
下面将详细描述图17所示的使用全文索引163的搜索处理的实例。
当搜索字符串是“全文检索”时,文本分割部件106提取出三个标记“全文”、“文检”和“检索”。然后,文本分割部件106在全文索引163中检查相应于该标记的三个反列表。从反列表中查找到的该标记在文档1中的不同的出现位置显示“全文检索”出现在文档1中的位置十一和三十一处。
《合并处理》由合并部件111执行的合并处理代替了上述后来所提交的专利申请中所描述的数据传输部件的处理,所述专利申请也是由本申请的申请人所提交的。
与利用原始文档数据进行注册/删除处理的情况相比,在启动该处理时,直接利用已经建立的反列表不需要文本分割处理中用于分割标记和创建反列表的时间,这样就缩短了数据传输的时间。在本发明中,由于该处理在反列表之间进行,数据传输处理也可以被称为合并处理。当全文搜索装置中的文档数据的注册/删除处理在反列表间执行时,对全文搜索索引直接使用注册/删除数据中已经存在的反列表,这样就缩短了全文搜索索引的合并处理时间,同时也减少了搜索处理的等待时间。
在执行合并处理的过程中,首先,对于小型全文注册索引中的所有标记,执行(a)从全文索引中提取这些标记的反列表的处理,(b)在大型全文搜索索引中的相应于这些标记的反列表的末端添加这些反列表的处理。然后,清空小型全文注册索引。此外,对于小型全文删除索引中的所有标记,执行(c)从全文索引中提取这些标记的反列表的处理,(d)从大型全文搜索索引中的相应于这些标记的反列表中删除包含在这些提取的反列表中的出现位置信息。之后,清空该小型全文删除索引。
图18是把图17所示的全文索引163中的标记“全文”的反列表的合并处理作为实例来说明的图表。
在此例中,“全文”的反列表即{1,2〔11,31〕}和{2,2〔30,42〕}在全文搜索索引中是反列表171;“全文”的反列表即{5,2〔4,16〕}和{8,1〔3〕}在全文注册索引中是反列表172;并且反列表171和反列表172是合并处理173的处理对象。执行合并处理173得到“全文”的反列表174,即{1,2〔11,31〕},{2,2〔30,42〕},{5,2〔4,16〕},{8,1〔3〕}。接下来,对反列表174和“全文”的反列表,即全文删除索引中的反列表176{1,2〔11,31〕},执行合并处理175,得到“全文”的反列表177,即{2,2〔30,42〕},{5,2〔4,16〕}和{8,1〔3〕}。
《合并处理的形式1》当满足启动条件时,注册处理部件103启动小型全文注册索引的合并处理,即当在小型全文注册索引存储部件109的小型全文注册索引中注册的文档标识符的数量达到一个预定值(Ni)时,合并部件111执行合并处理。
在合并处理中,当满足上述启动条件时,首先,将开始时间(Ts)记录(存储)在合并时间存储部件112中。然后,对于小型全文注册索引中的所有的标记,执行(a)从全文索引中提取这些标记的反列表的处理,(b)在大型全文搜索索引中相应于这些标记的反列表的末端添加这些反列表的处理。然后,清空小型全文注册索引。此外,对于小型全文删除索引中的所有标记,执行(c)从全文索引中提取这些标记的反列表的处理,(d)从大型全文搜索索引中相应于这些标记的反列表中删除包含在这些提取的反列表中的出现位置信息。接下来,清空该小型全文删除索引。然后将结束时间(Te)存储在合并时间存储部件112中。
在上述的合并处理中,当合并处理时间(Te-Ts)大于预定的时间(T)时,下一个合并处理的启动条件根据下面的表达式(1)而改变。
Ni×(1-(Te-Ts)/T)——(1)根据合并处理的形式1,利用注册的文档标识符作为启动条件就不需要管理全文存储部件的大小,这就使要执行的处理更加简单。
《合并处理的形式2》当满足启动条件时,注册处理部件103启动小型全文注册索引的合并处理,即当在小型全文注册索引存储部件109的存储容量(大小)达到一个预定值(Si)时,并由合并部件111执行。在此合并处理中,合并处理形式1中所描述的形成合并处理启动条件的表达式(1)由下面的表达式(2)代替。
Si×(1-(Te-Ts)/T)——(2)当来自用户的文档数据的大小不同时,根据合并处理的形式2,小型文档数据不断地注册而在用于向小型全文注册索引中注册的时间变长之前,可以阻止合并处理的启动。使用大小作为启动条件与合并处理时间的效果是等同的。
《合并处理的形式3》
当满足启动条件时,删除处理部件104启动小型全文删除索引的合并处理,即当注册在小型全文删除索引存储部件110的小型全文删除索引中的文档标识符的数量达到一个预定值(Nd)时,由合并部件111执行合并处理。在此合并处理中,合并处理形式1中所描述的形成合并处理启动条件的表达式(1)由下面的表达式(3)代替。
Nd×(1-(Te-Ts)/T)——(3)根据合并处理的形式3,当删除处理不频繁的发生时,其具有缩短合并处理的时间的优点。
《合并处理的形式4》当达到启动条件时,删除处理部件104启动小型全文删除索引的合并处理,即当注册在小型全文删除索引存储部件110的小型全文删除索引的大小达到一个预定值(Sd)时,由合并部件111执行合并处理。在此合并处理中,合并处理形式1中所描述的形成合并处理启动条件的表达式(1)由下面的表达式(4)代替。
Sd×(1-(Te-Ts)/T)——(4)根据合并处理的形式4,当删除处理不频繁的发生时,其具有缩短合并处理的时间的优点。
根据上述的合并处理的形式,全文搜索装置可以在适合于要被注册/删除的文档数据的特征和/或在使用该装置时一字段的特征的条件下启动该全文索引的合并处理。这样就减少了合并处理发生的次数,同时提高了系统整体的处理能力。进一步的,甚至当注册的文档的数量增多时,全文搜索装置将合并处理所需的时间限定在一预定的时间内,这样就将其它处理的等待时间限定为一预定的时间内,由此进一步的提高了系统整体的处理能力。
此外,本发明不仅仅适用于上述的全文搜索装置,其也可以是用于能实现上述全文搜索装置的功能的程序、组成该全文搜索装置的部件的功能程序、或存储该程序的计算机可读记录介质。
<实施例7>
下面将描述一实例,其中用于实现本发明的全文搜索装置的功能的程序和数据存储在可读介质中。尤其是,该可读介质可以是CD-ROM、磁光盘、DVD-ROM、FD、闪存以及各种类型的ROM和RAM,等等。使计算机执行前述实施例的全文搜索装置的功能以便实现全文搜索的功能的程序,记录在用于销售的记录介质中,这样就便于实现这些功能。通过将上述记录媒体安装在诸如计算机的信息处理装置中,并由该信息处理装置读取所述程序,或者将该程序存储在该信息处理装置提供的存储介质中,并在需要时读取该程序,能够实现本发明的全文搜索的功能。
<实施例8>
图19是一个说明根据本发明第八实施例的全文搜索装置的方框图。
根据本实施例的全文搜索装置也可以是从多个文档数据(多个电子文档)中搜索一个包含一指定字符串的文档的装置。另外,全文搜索装置中的“全文搜索”是指搜索所有要搜索的字符串。由此,在具有标签的文档中,例如SGML,仅仅在预定标签间的字符串可以正确的完全搜索。
如图19中所示,在本实施例中,用于注册处理的文本数据、用于删除处理的文档标识符、用于搜索处理的搜索条件等等通过输入部件201输入,并分别提供给注册处理部件203、删除处理部件204及搜索处理部件205。注册处理部件203完成文档数据的注册处理。注册处理部件203对文档数据存储部件207和小型全文注册索引存储部件209执行注册处理。删除处理部件204完成文档数据的删除处理。在删除处理部件204执行的删除处理中,根据输入部件201所输入的文档标识符读取存储在文档数据存储部件207中的文档数据;并且当与其相关的索引已经注册在小型全文注册索引存储部件209中时,利用一文本分割部件206删除该索引;当该索引未注册在小型全文注册索引存储部件209中时,就把该索引记录在小型全文删除索引存储部件210中。另外,文本分割部件206在注册处理中为注册处理部件203将文档数据分割成部分字符串,在删除处理中为删除处理部件204将文档数据分割成部分字符串,以及在搜索处理中为搜索处理部件105将搜索条件(一搜索字符串)分割成部分字符串。
另外,搜索处理部件205对大型全文搜索索引存储部件208、小型全文注册索引存储部件209以及小型全文删除索引存储部件210执行搜索处理。在搜索处理中,小型全文删除索引存储部件210的搜索结果将从大型全文搜索索引存储部件208和小型全文删除索引存储部件210的搜索结果中除去,该除去后的结果通过一输出部件202作为搜索结果输出。合并部件211实现大型全文搜索索引存储部件208、小型全文注册索引存储部件209以及小型全文删除索引存储部件210中的数据传输(即广义的数据传输)。
此外,删除处理部件204可以不使用小型全文删除索引存储部件210,而是仅仅使用小型全文注册索引存储部件209,在其中使用其它文档数据(及索引)的删除管理方法,来执行删除处理;例如,只删除将要删除的文档数据,以及在闲置状态等,利用大量处理时间,通过与存储在文档数据存储部件207中的文档数据相匹配而更新大型全文搜索索引存储部件208中的文档数据。相反的,删除处理部件204可以不使用小型全文注册索引存储部件209,而是仅仅使用小型全文删除索引存储部件210,来执行删除处理。
在上述图15中所示的单机硬件结构中,输入装置121相当于图19中的输入部件201,显示装置122相当于图19中的输出部件202。主控装置(CPU、存储器等)124相当于图19中的注册处理部件203、删除处理部件204、搜索处理部件205、文本分割部件206以及合并部件211。存储装置125相当于图19中所示的所有的文档数据存储部件207、大型全文搜索索引存储部件208、小型全文注册索引存储部件209以及小型全文删除索引存储部件210;或者单独存储器相当于图19中所示各存储器部件207至210;或者存储器装置125中的文件相当于图19中所示的存储器部件207至210。例如,当利用一有限的存储器装置执行本发明的全文搜索时,根据是主要执行搜索处理还是主要执行注册/删除处理恰当地分配其所使用的区域。此外,输入输出控制装置123根据主控装置124的控制信号控制输入装置121和显示装置122。
在上述图16中的服务器/客户端模式的硬件结构中,客户端130的输入装置131相当于图19中的输入部件201,客户端130的显示装置132相当于图19中的输出部件202。客户端130和服务器150的主控装置(CPU、存储器等)134及152相当于图19中的注册处理部件203、用于删除处理部件204的删除处理、搜索处理部件205、文本分割部件206以及合并部件211。服务器的存储装置153相当于图19中所有的文档数据存储部件207、大型全文搜索索引存储部件208、小型全文注册索引存储部件209以及小型全文删除索引存储部件210;或者与服务器150相连的单独存储器相当于图19中所示各存储器部件207至210;或者存储装置153中的文件相当于图19中所示的存储器部件207至210。此外,客户端130的网络控制装置135和服务器150的网络控制装置151,通过网络140控制客户端130和服务器150之间的数据传输等。更进一步的,客户端130的输入输出控制装置133根据主控装置134的控制信号控制输入装置131和显示装置132。
接下来,将详细描述根据第八实施例的全文搜索装置的操作的实例。
图20至22是说明图19所示的全文搜索装置中处理实例的流程图。
当全文搜索装置接收到来自用户的处理请求时(步骤ST1),首先,全文搜索装置判断该处理是不是注册处理(步骤ST2),该处理是不是删除处理(步骤ST3),以及该处理是不是搜索处理(步骤ST3中的否)。根据这些判断全文搜索装置执行下列处理之一。
《注册处理》在注册处理的执行中,首先,用户创建文档数据,并通过输入部件201注册该文档数据。注册处理部件203在文档数据存储部件207中存储该文档数据,并同时确定一表示该文档数据的标识符(文档标识符)(图21中的步骤ST11)。例如,对于一包括诸如是SGML的标签的文档,只有在预定标签之间的字符串才能在该处理中被正确处理。进一步地,该注册处理部件203利用文本分割部件206从文档数据中获得部分字符串(标记)及该标记的出现位置信息(步骤ST12)。最后,注册处理部件203在小型全文注册索引存储部件209中记录该文档标识符和该标记的出现位置信息(步骤ST13)。步骤ST13中的“记录”是指存储部件(与下面的使用相同)中的全文索引的记录,并且步骤ST13中的处理指的也是索引存储步骤。另外,文本分割部件206可以使用例如一N字符组构成一标记的方法或者进行字形分析并使一个字构成一标记的方法作为分割方法。下面将描述文本分割部件206使用一N字符组构成一标记的方法的实例;但是,这些实例也同样适用于进行字形分析并使一个字构成一标记的方法。此外,合并处理在步骤ST13中的记录之后及时的执行,其将在下面描述。
另外,利用文本分割部件206执行的反向文件的全文索引的方法,实质上与上面参照图17的描述相同。
《删除处理》在删除处理的执行中,首先,用户通过输入部件201输入要删除的文档的文档标识符。然后,删除处理部件104从文档数据存储部件207读取相应于文档标识符的文档数据(图22中的步骤ST21)。接下来,删除处理部件204利用文本分割部件206获得部分字符串(标记)及该标记在文档数据中出现的位置信息(步骤ST22)。例如,对于一包括诸如是SGML的标签的文档,只有在预定标签之间的字符串才能在该处理中被正确处理。删除处理部件204判断文档标识符是否注册在小型全文注册索引中(步骤ST23)。当文档标识符注册在小型全文注册索引中时,该标记的出现位置信息就从小型全文注册索引存储部件209中删除(步骤ST25)。当文档标识符没有注册在小型全文注册索引中时(即当文档标识符注册在大型全文搜索索引中时),文档标识符和该标记的出现位置信息就记录在小型全文删除索引存储器部件210中(步骤ST24)。接下来,删除处理部件204在文档数据存储部件207中删除相应于文档标识符的文档数据(步骤ST29)。此外,合并处理在步骤ST24中的记录之后及时的执行(步骤ST26-ST28),其将在下面描述。
《搜索处理》在执行搜索处理的过程中,首先,用户通过输入部件201输入搜索字符串。然后,搜索处理部件205利用文本分割部件206从搜索字符串中获得标记(图20中的步骤ST4)。此外,搜索处理部件205利用大型全文搜索索引存储部件108的大型全文搜索索引获得一组(Rs)包括搜索字符串的文档数据的文档标识符(步骤ST5),并且利用小型全文注册索引存储部件209的小型全文注册索引获得一组(Ri)包括该搜索字符串的文档数据的文档标识符(步骤ST6)。接下来,该搜索处理部件205利用小型全文删除索引存储部件210的小型全文删除索引获得一组(Rd)包括该搜索字符串的文档数据的文档标识符(步骤ST7)。为了获得搜索结果(R),该搜索处理部件205对获得的文档标识符的组(Rs,Ri,Rd)进行如下一系列操作,并且通过输出部件102向用户输出如一组包括该搜索字符串的文档数据的文档标识符的搜索结果(R)(步骤ST9)。
R=Rs+Ri-Rd,其中,+表示逻辑OR操作符,-表示逻辑NOT操作符。
另外,利用文本分割部件206执行的搜索处理与上面参照图17描述的采用全文索引163的实例实质上相同。
《合并处理》由合并部件211执行的合并处理代替了上述后来所提交的专利申请中所描述的数据传输部件的处理,所述专利申请也是由本申请的申请人所提交的。
与利用原始文档数据进行注册/删除处理的情况相比,在启动该处理时,直接利用已经建立的反列表不需要文本分割处理中用于分割标记和创建反列表的时间,这样就缩短了数据传输处理的时间。在本发明中,由于该处理在反列表之间进行,数据传输处理(数据传输步骤)也可以被称为合并处理(合并步骤)。当全文搜索装置中的文档数据的注册/删除处理在反列表间执行时,对全文搜索索引直接使用注册/删除数据中已经存在的反列表,这样就缩短了全文搜索索引的合并处理时间,同时也减少了搜索处理的等待时间。
在执行合并处理的过程中,首先,对于小型全文注册索引中的所有标记,执行(a)从全文索引中提取这些标记的反列表的处理(图21中的步骤ST14),(b)在大型全文搜索索引中的相应于这些标记的反列表的末端添加这些反列表的处理(步骤ST15)。然后,清空小型全文注册索引(步骤ST16)。此外,对于小型全文删除索引中的所有标记,执行(c)从全文索引中提取这些标记的反列表的处理(图22中的步骤ST26),(d)从大型全文搜索索引中的相应于这些标记的反列表中删除包含在这些提取的反列表中的出现位置信息(步骤ST27)。之后,清空该小型全文删除索引(步骤ST28)。
另外,根据本实施例反列表的合并处理与上面参照图18的描述实例实质上相同。
《合并处理的形式1》当在小型全文注册索引存储部件209的小型全文注册索引中注册的文档标识符的数量达到一个预定值时,合并处理由注册处理部件203启动,并由合并部件211执行。
根据合并处理的形式1,利用注册的文档标识符的数量作为启动条件就不需要管理全文存储部件的大小,这就使要执行的处理更加简单。
《合并处理的形式2》当在小型全文注册索引存储部件209的存储容量(大小)达到一个预定值时,合并处理由注册处理部件203启动,并由合并部件211执行。当来自用户的文档数据的大小不同时,根据合并处理的形式2,小型文档数据不断地注册而在用于向小型全文注册索引中注册的时间变长之前,可以防止合并处理的启动。使用大小作为启动条件与合并处理时间的效果是等同的。
《合并处理的形式3》当满足在小型全文删除索引中注册的文档标识符的数量达到一个预定值的启动条件时,小型全文删除索引的合并处理由删除处理部件204启动,并由合并部件211执行。
《合并处理的形式4》当满足小型全文删除索引存储部件210的大小达到一个预定值的启动条件时,小型全文删除索引的合并处理由删除处理部件204启动,并由合并部件211执行。
根据合并处理的形式3和4,当删除处理不频繁的发生时,其具有缩短合并处理的时间的优点。
根据上述的合并处理的形式,全文搜索装置可以在要被注册/删除的文档数据的特征和/或在使用该装置时一字段的特征适宜的条件下启动该全文索引的合并处理。这样就减少了合并处理发生的次数,并同时提高了系统整体的处理能力。另外,包括注册处理的合并处理及包括删除处理的合并处理可以在任一启动条件下同时启动。
这样,在本实施例的全文搜索装置中,用于将数据从小型全文索引传输到大型全文索引中的数据传输部件(合并部件211)传输的不是原始文档数据,而是反向文件方法中组成全文索引的反列表,这样就缩短了数据传输所需的时间。
<实施例9>
下面,将详细描述依照本发明第九实施例的全文搜索装置,其中对根据前面实施例的全文搜索设备使用了写延迟数据库管理方法/装置,其在由当前申请的申请人所申请另一专利申请中得到描述。依照当前实施例的全文搜索装置解决了以下问题,当执行从用于注册或用于删除的小型全文索引到用于搜索的大型全文索引的数据传送(反列表的合并处理)时,所述用于注册或用于删除的小型全文索引存储部件不能使用,同时不能执行注册处理或删除处理。
附图23是用于解释依照本发明第九实施例的全文搜索装置的方框图。
在本发明第九实施例的全文搜索装置中,具有两个用于注册的小型全文索引存储部件和两个用于删除的小型全文索引存储部件,以便,当执行合并(数据传送),从一个小型全文索引合并到大型全文索引时,另一个小型全文索引可以用于执行注册处理或删除处理,由此,排除了不能执行的处理的时间。也就是,在本发明第九实施例的全文搜索装置中,提供的两个用于注册的小型全文索引可以使注册处理能够在甚至是合并处理正在执行的时候执行,并且提供的两个用于删除的小型全文索引可以使得删除处理能够在甚至是在合并处理正在执行的时候执行。当前第九实施例更适合于注册处理及与包含于其中的合并处理连续频繁地执行的情况,诸如当通过扫描仪等读取文档时,其经受OCR处理,并继续进行注册。全文搜索对这样具有高速响应的图像数据以及普通应用数据变得有可能。
在当前的第九实施例中,参照附图19所描述的小型全文注册索引存储部件209包括两个存储部件,即小型全文注册索引存储部件A(209a)和小型全文注册索引存储部件B(209b)。参照附图19描述的小型全文删除索引存储部件210,包括两个存储部件,即小型全文删除索引存储部件A(210a)和小型全文删除索引存储部件B(210b)。此外,附图15和16中所示的硬件结构也适用于本发明第九实施例的全文搜索装置。此外,也可以在存储器中而不是在存储装置125或153中,提供一个或更多上述存储部件。
下面,将详细描述依照本发明第九实施例的全文搜索装置的操作的一个实例。
图24至图26是用于说明附图23中所示的全文搜索装置中的处理过程的实例的流程图。
当全文搜索装置收到一来自用户的处理请求时(步骤ST31),首先,全文搜索装置判断该处理是否为注册处理(步骤ST32)、该处理是否为删除处理(步骤ST33)及该处理是否为搜索处理(步骤ST33中的否)。全文搜索装置根据这个判断执行下列任一处理。
《注册处理》在执行注册处理中,首先,用户创建文档数据,并通过输入部件201注册该文档数据。注册处理部件203在文档数据存储部件207中存储该文档数据,同时,确定一指示文档数据的标识符(一文档标识符)(附图25中的步骤ST41)。进一步地,利用文本分割部件206,注册处理部件203获得部分字符串(标记)和标记在文档数据中出现位置信息(步骤ST42)。此外,分割方法和全文索引和上面描述的完全相同。注册处理部件203文档标识符和标记的出现位置信息记录在那时所用的小型全文注册索引存储部件中(例如,小型全文注册索引存储部件A(209a))(步骤ST43)。
在步骤ST43的记录步骤之后,合并处理正好完成。在当前例子中,根据预定的合并起始条件执行合并处理。首先,步骤ST43的记录步骤的结果是,注册处理部件203判断合并起始条件是否满足(步骤ST44)。当不满足合并起始条件时(步骤ST44中的否),处理结束。此外,在前述实施例中所描述的合并处理形式的起始条件也适用于当前的第九实施例。当满足合并起始条件时(步骤ST44中的是),注册处理部件203判断另一个小型全文注册索引存储部件(在此例中,为小型全文注册索引存储部件B(209b))是否正在进行合并处理(步骤ST45)。当另一个小型全文注册索引存储部件B(209b)正在进行合并处理时(步骤ST45中的是),注册处理部件203等待合并处理结束。
当满足合并起始条件时,并且另一个小型全文注册索引存储部件B(209b)没有进行合并处理时(步骤ST45中的否),注册处理部件203根据小型全文注册索引存储部件A(209a)中的小型全文注册索引A启动下述合并处理(步骤ST47-ST49),并将下一注册处理要执行的记录所用的存储部件,从小型全文注册索引存储部件A(209a)转换到另一个小型全文注册索引存储部件B(209b)(步骤ST46)。当启动合并处理时,合并部件211以与注册处理部件203相异步地执行合并处理。
《删除处理》在执行删除处理的过程中,首先,用户通过输入部件201输入要删除的文档的文档标识符。接着,删除处理部件204根据文档标识符从文档数据存储部件207中读取文档数据(附图26中的步骤ST51)。进一步地,删除处理部件204利用文本分割部件206从文档数据中获得部分字符串(标记)和标记的出现位置信息(步骤ST52)。
接着,删除处理部件204判断文档标识符是否已注册在小型全文注册索引中(步骤ST53)。当文档标识符已在小型全文注册索引中注册时,就从小型全文注册索引存储部件209(209a和209b)中删除该标记的出现位置信息(ST55)。当文档标识符没有在小型全文注册索引中注册时(即,当文档标识符注册在大型全文搜索索引中时),就将文档标识符和标记的出现位置信息记录在那时的小型全文删除索引存储部件中(例如,小型全文删除索引存储部件A(210a)中)(步骤ST54)。随后,删除处理部件204根据文档标识符从文档数据存储部件207中删除该文档数据。(步骤ST62)。
在步骤ST54的记录步骤之后,合并处理正好完成。在当前例子中,根据预定的合并起始条件执行合并处理。首先,作为在步骤ST54中记录的结果,删除处理部件204判断是否满足合并起始条件(步骤ST56)。当不满足合并起始条件时(步骤ST56中的否),在执行完步骤ST62之后,该处理结束。此外,如上面所提到的,前述实施例中的合并处理形式的起始条件也适用于当前的第九实施例。当满足合并起始条件时(步骤ST56中的是),删除处理部件204判断另一个小型全文删除索引存储部件(在此例中,为小型全文删除索引存储部件B(210b))是否正在进行合并处理(步骤ST57)。当另一个小型全文删除索引存储部件B(209b)正在进行合并处理时(步骤ST57中的是),删除处理部件204等待合并处理结束。
当满足合并起始条件时,并且另一个小型全文删除索引存储部件B(210b)没有执行合并处理时(步骤ST57中的否),删除处理部件204根据小型全文删除索引存储部件A(210a)中的小型全文删除索引A启动下述合并处理(步骤ST59-ST61),并将下一个删除处理所要执行的记录的存储部件,从小型全文删除索引存储部件A(210a)转换到另一个小型全文删除索引存储部件B(210b)(步骤ST58)。当启动合并处理时,合并部件211与删除处理部件204异步地执行合并处理。
《搜索处理》在搜索处理的执行过程中,首先,用户通过输入部件201输入搜索字符串。接着,搜索处理部件205利用文本分割部件206从搜索字符串中获得标记(附图24中的步骤ST34)。此外,搜索处理部件205利用大型全文搜索索引存储部件208中的大型全文搜索索引,获得一组(Rs)含有搜索字符串的文档数据的文档标识符(步骤ST35)。搜索处理部件205利用小型全文注册索引存储部件A(209a)中的小型全文注册索引A,获得一组(RiA)含有搜索字符串的文档数据的文档标识符,并且利用小型全文注册索引存储部件B(209b)中的小型全文注册索引B,获得一组(RiB)含有搜索字符串的文档数据的文档标识符。进一步地,搜索处理部件205利用小型全文删除索引存储部件A(210a)中的小型全文删除索引A,获得一组(RdA)含有搜索字符串的文档数据的文档标识符,并利用小型全文删除索引存储部件B(210b)中的小型全文删除索引B,获得一组(RdB)含有搜索字符串的文档数据的文档标识符(步骤ST37)。
搜索处理部件205对获得的文档标识符的多个组(Rs,RiA,RiB,RdA,RdB)执行下列一组操作,以获得搜索结果(R)(步骤ST38),并通过输出部件202把一组含有搜索字符串的文档数据的文档标识符作为所述搜索结果(R)输出给用户(步骤ST39)。
R=Rs+RiA+RiB-RdA-RdB,其中,+代表逻辑OR操作符,-代表逻辑NOT操作符。
《合并处理》在小型全文注册索引的合并处理的执行过程中,根据用于启动合并处理的小型全文注册索引(在该例中,为小型全文注册索引A)中的所有的标记,执行(a)从全文索引中提取标记的反列表的处理(附图25中的步骤ST47),和(b)把反列表加到大型全文搜索索引中相应标记的反列表的末端(步骤ST48)的处理。接着,清空小型全文注册索引A(步骤ST49)。
在小型全文删除索引的合并处理的执行过程中,根据用于启动合并处理的小型全文删除索引(在此例中,为小型全文删除索引A)中的所有的标记,执行(c)从全文索引中提取标记的反列表的处理(附图26中的步骤ST59),和(d)把包含在提取反列表中的出现位置信息从大型全文搜索索引中相应于大型全文搜索索引中的标记的反列表中删除的处理(步骤ST60)。接着,清空小型全文删除索引A(步骤ST61)。
此外,根据本发明实施例的反列表的合并处理,与参照附图18所作出的上述描述完全相同。
<实施例10>
下面,将参照附图27到30,描述依据本发明第十实施例的全文搜索装置,其中三个或更多小型全文注册索引存储部件和/或三个或更多小型全文删除索引存储部件被用于根据前述的第九实施例中的全文搜索装置。
附图27是说明依照本发明第十实施例的全文搜索装置的方框图。
根据本发明第十实施例的全文搜索装置中,有三个或更多用于注册的小型全文索引和三个或更多用于删除的小型全文索引(在本例中都描述为三个),这样,当执行从两个小型全文索引到一个大型全文索引的合并(数据转移)时,使用另一个小型全文索引来完成注册处理或删除处理,由此,消除了处理不能执行的时间。即,在根据本发明第十实施例的全文搜索装置中,提供了多个用于注册的小型全文索引,以使其在合并处理的执行期间并且甚至是其它注册处理的执行期间,能根据另一个用于注册的小型全文索引执行注册处理;也提供了多个用于删除的小型全文索引,以使其在甚至是执行合并的处理期间以及在执行其他删除处理期间,能根据另一个用于删除的小型全文索引执行删除处理。实际上,因为注册或删除是在比合并短的时间内处理的,所以假定合并处理更频繁地同时发生。
在当前第十实施例中,参照附图19描述的小型全文注册索引存储部件209包括三个存储部件,即小型全文注册索引存储部件A(209a)、小型全文注册索引存储部件B(209b)和小型全文注册索引存储部件C(209c)。参照附图19所描述的小型全文删除索引存储部件210,包括三个存储部件,即小型全文删除索引存储部件A(210a),小型全文删除索引存储部件B(210b)和小型全文删除索引存储部件C(210c)。此外,附图15和16中所示的硬件结构也适用于依照本发明第十实施例的全文搜索装置。而且,在存储器中而不是在存储装置125或153中,提供一个或更多上述存储部件,也是可以的。
下面,将详细描述依照本发明第十实施例的全文搜索装置的操作的实例。
附图28到30是说明附图27中所示的全文搜索装置中的处理的实例的流程图。
当全文搜索装置收到一来自用户的处理请求时(步骤ST71),首先,全文搜索装置判断该处理是否为注册处理(步骤ST72),该处理是否为删除处理(步骤ST73),及该处理是否为搜索处理(步骤ST73中的否)。全文搜索装置也根据此判断执行下列任一处理。
《注册处理》在注册处理执行过程中,首先,用户创建文档数据,并通过输入部件201注册该文档数据。注册处理部件203在文档数据存储部件207中存储文档数据,同时,确定指示文档数据的标识符(文档标识符)(附图29中的步骤ST81)。进一步地,利用文本分割部件206,注册处理部件203获得部分字符串(标记)和该标记在文档数据中的出现位置信息(步骤ST82)。此外,分割方法和全文索引和上面描述的完全相同。注册处理部件203在那时所用的小型全文注册索引存储部件(例如,小型全文注册索引存储部件A(209a))中记录文档标识符和该标记的出现位置信息(步骤ST83)。
在步骤ST83的记录步骤之后,合并处理正好完成。在当前例子中,按照预定的合并起始条件执行合并处理。首先,作为在步骤ST83中记录的结果,注册处理部件203判断是否满足合并起始条件(步骤ST84)。当不满足合并起始条件时(步骤ST84中的否),处理结束。此外,在前述实施例中的合并处理形式的起始条件,也适用于当前的第十实施例。当满足合并起始条件时(步骤ST84中的是),注册处理部件203判断另一个小型全文注册索引存储部件(在此例中,为小型全文注册索引存储部件B(209b))是否正在进行合并处理(步骤ST85)。当小型全文注册索引存储部件B(209b)正在进行合并处理时(步骤ST85中的是),注册处理部件203判断第三小型全文注册索引存储部件(在此例中,为小型全文注册索引存储部件C(209c))是否正在进行合并处理(步骤ST86)。并且,在步骤ST85和步骤ST86中,注册处理部件203也判断每个小型全文注册索引存储部件B(209b)和C(209c)是否正在进行注册处理。当小型全文注册索引存储部件C(209c)正在进行合并处理时(步骤ST86中的是),注册处理部件203等待合并处理结束。在这里,解释了大多数关于合并处理判断的假设情况。
当满足合并起始条件,并且另外两个小型全文注册索引存储部件B(209b)和C(209c)的其中之一没有进行合并处理时(步骤ST85/ST86中的否),注册处理部件203根据小型全文注册索引存储部件A(209a)中的小型全文注册索引A,启动与附图25中的步骤ST47-ST49一样的合并处理(步骤ST89-ST91),并将为下一个注册处理所要执行的记录的存储部件,从小型全文注册索引存储部件A(209a)转换到另一个小型全文注册索引存储部件B(209b)/C(209c)(即,没有进行合并处理的存储部件,在下文以同样的方式表示)(步骤ST87/ST88)。当启动合并处理时,合并部件211与注册处理部件203异步地执行合并处理。
《删除处理》在删除处理的执行过程中,首先,用户通过输入部件201输入要删除的文档的文档标识符。接着,删除处理部件204根据文档标识符从文档数据存储部件207中读取文档数据(附图30中的步骤ST101)。进一步地,删除处理部件204利用文本分割部件206从文档数据中获得部分字符串(标记)和该标记的出现位置信息(步骤ST102)。
接着,删除处理部件204判断文档标识符是否已注册在小型全文注册索引中(步骤ST103)。当文档标识符已注册在小型全文注册索引中时,则从小型全文注册索引存储部件209(209a,209b和209c)中删除该标记的出现位置信息(ST105)。当文档标识符没有注册在小型全文注册索引中时(即,当文档标识符注册在大型全文搜索索引中时),将文档标识符和标记的出现位置信息记录在那时的小型全文删除索引存储部件中(例如,小型全文删除索引存储部件A(210a)中)(步骤ST104)。随后,删除处理部件204从文档数据存储部件207中删除相应于文档标识符的文档数据(步骤ST114)。
在步骤ST104的记录步骤之后,合并处理正好完成。在当前例子中,根据预定的合并起始条件执行合并处理。首先,作为在步骤ST104的记录步骤的结果,删除处理部件204判断是否满足合并起始条件(步骤ST106)。当不满足合并起始条件时(步骤ST106中的否),在执行完步骤ST114之后,该处理结束。此外,如上面所提到的,前述实施例的合并处理形式的起始条件,也适用于当前的第十实施例。当满足合并起始条件时(步骤ST106中的是),删除处理部件204判断另一个小型全文删除索引存储部件(在此例中,为小型全文删除索引存储部件B(210b))是否正在进行合并处理(步骤ST107)。当小型全文删除索引存储部件B(209b)正在进行合并处理时(步骤ST107中的是),删除处理部件204判断第三小型全文删除索引存储部件(在该例中,为小型全文删除索引存储部件C(210c))是否正在进行合并处理(步骤ST108)。此外,在步骤ST107和ST108中,删除处理部件204也判断每个小型全文删除索引存储部件B(210b)和C(210c)是否正在进行删除处理。当小型全文删除索引存储部件C(210c)正在进行合并处理时(步骤ST108中的是),所述删除处理部件204等待合并处理结束。在这里,解释了大多数关于合并处理的判断的假设情况。
当满足合并起始条件,并且另外两个小型全文删除索引存储部件B(210b)和C(210c)中的任一个没有进行合并处理时(步骤ST107/ST108中的否),删除处理部件204根据小型全文删除索引存储部件A(209a)中的小型全文删除索引A,启动与附图26中所示的步骤ST59-ST61一样的合并处理(步骤ST111-ST113),并将下一个删除处理所要执行的记录的存储部件,从小型全文删除索引存储部件A(210a)转换到另一个小型全文删除索引存储部件B(209b)/C(209c)(步骤ST109/ST110)。当启动合并处理时,合并部件211与删除处理部件204异步地执行合并处理。
《搜索处理》本发明第十实施例的搜索处理基本上与上面参照附图24描述的搜索处理相似,并且附图24中的步骤ST34到ST39分别与附图28中的步骤ST74到ST79一致,只是,在步骤ST76中,搜索处理部件205,不仅得到所述组(RiA,RiB),还利用小型全文注册索引存储部件C(209c)的小型全文注册索引C,得到一组(RiC)含有搜索字符串的文档数据的文档标识符(步骤ST76)。进一步地,在步骤ST77中,搜索处理部件205不仅得到所述组(RdA,RdB),也利用小型全文删除索引存储部件C(210c)中的小型全文删除索引存储部件C,得到一组(RdC)包含搜索字符串的文档数据的文档标识符(步骤ST77)。搜索处理部件205对获得文档标识符的多个组(Rs,RiA,RiB,RiC,RdA,RdB,RdC)执行下列一组操作,以获得搜索结果(R)(步骤ST78),并通过输出部件202把一组含有搜索字符串的文档数据的文档标识符作为所述搜索结果(R)输出给用户(步骤ST79)。
R=Rs+RiA+RiB+RiC-RdA-RdB-RdC,其中,+代表逻辑OR操作符,-代表逻辑NOT操作符。
<实施例11>
在前述第九和第十实施例中,全文搜索装置使用多个小型全文注册索引存储部件和/或多个小型全文删除索引存储部件。下面,将参照附图31到附图34,描述依照本发明第十一实施例的全文搜索装置,其也适用于下面这种情况,这些全文索引存储部件(除了大型全文搜索索引存储部件)位于附图15或附图16中所示的存储装置125或153中的单独存储区中,或者是在存储器中的单独的存储区中,或适用于全文索引存储部件(除了大型全文搜索索引存储部件)为存储在存储装置125或153或者存储器中的单独的文档的情况。
附图31是说明依照本发明第十一实施例的全文搜索装置的方框图。
在依照本发明第十一实施例的全文搜索装置中,预先准备一个用于注册的小型全文索引和一个用于删除的小型全文索引,以便,在登记/删除处理过程中,当不存在可以存储全文登记/删除索引的全文登记/删除存储部件时,例如在执行从小型全文索引到大型全文索引的合并(数据转移)时,新建另一个小型全文索引以执行注册处理或删除处理,由此,避开了处理不可能进行的时间段。即,在依照本发明第十一实施例的全文搜索装置中,适时地提供多个用于注册的小型全文索引,以便在甚至是执行对多个用于注册的小型全文索引的合并处理期间以及甚至是正在执行其他注册处理期间,也能执行注册处理;同样地,适时地提供了多个用于删除的小型全文索引,使其能在甚至是执行对多个用于删除的小型全文索引的合并处理期间以及甚至是正在执行其他处理删除处理期间,执行删除处理。实际上,因为注册或删除是在比合并处理更短的时间内处理,所以假定合并处理更频繁地同时发生。
本发明第十一实施例的全文搜索装置包括存储部件管理部件212,其管理一个与小型全文注册索引存储部件A(209a)不同的另一小型全文注册索引存储部件。此外,存储部件管理部件212还在删除处理中管理另一个与小型全文删除索引存储部件A(210a)不同的小型全文删除索引存储部件。当在注册处理中不存在可以存储全文注册索引的全文注册索引存储部件时,存储部件管理部件212新建另外一个小型全文注册索引存储部件。进一步地,存储部件管理部件212删除多余的全文注册/删除索引存储部件(在下一处理中不用的)。
此外,在当前第十一实施例中,参照附图19描述的小型全文注册索引存储部件209适时将存储部件的数目从仅有的小型全文注册索引存储部件A(209a)增加到小型全文注册索引存储部件B(209b),C(209c),D(209d)……,(以任意顺序),并适时地删除这些存储部件。参照附图19描述的小型全文删除索引存储部件210适时将存储部件的数目从仅有的小型全文删除索引存储部件A(210a)增加到小型全文删除索引存储部件B(210b),C(210c),D(210d)……,(以任意顺序),并适时地删除这些存储部件。
通过使用适时地增加/删除的小型全文注册索引存储部件,在执行由其中一个全文注册索引存储部件到大型全文搜索索引存储部件208的合并数据的处理时(或其他注册处理),注册处理部件203使用另一个全文注册索引存储部件,以便执行注册处理。另一方面,通过使用适时地增加/删除的小型全文删除索引存储部件,在执行由其中一个全文删除索引存储部件到大型全文搜索索引存储部件208的合并数据的处理时(或其他删除处理),删除处理部件204使用另一个全文删除索引存储部件,以便执行删除处理。此外,在附图15和附图16中所示的硬件结构也适用于依照本发明第十一实施例的全文搜索装置。另外,在存储器中而不是在存储装置125或153中提供一个或更多上述存储部件,也是可以的。
下面,将详细描述依照本发明第十一实施例的全文搜索装置的操作的一个实例。
附图32到34是说明附图31中所示的全文搜索装置的处理过程的实例的流程图。
当全文搜索装置收到来自用户的处理请求时(步骤ST121),首先,全文搜索装置判断该处理是否为注册处理(步骤ST122),该处理是否为删除处理(步骤ST123),及该处理是否为搜索处理(步骤ST123中的否)。全文搜索装置根据此判断执行下列任一处理。
《注册处理》在执行注册处理的过程中,首先,用户创建文档数据,并通过输入部件201注册所述文档数据。注册处理部件203在文档数据存储部件207中存储该文档数据,同时,确定一指示该文档数据的标识符(文档标识符)(附图33中的步骤ST131)。进一步地,利用文本分割部件206,注册处理部件203获得部分字符串(标记)和该标记在文档数据中的出现位置信息(步骤ST132)。此外,该分割方法和全文索引与上面描述的完全相同。
根据注册处理部件203的命令,或适时地,存储部件管理部件212判断当前是否有可用的小型全文注册索引存储部件(步骤ST133)。当目前没有可用的小型全文注册索引存储部件时(步骤ST133中的否),存储部件管理部件212新建另一个小型全文注册索引存储部件(例如,小型全文注册索引存储部件C)(步骤ST135)。在此时当有可用的小型全文注册索引存储部件时(步骤ST133中的是,或步骤ST135之后),注册处理部件203将文档标识符和该标记的出现位置信息记录在那时所用的小型全文注册索引存储部件中(例如,小型全文注册索引存储部件A(209a)/C)(步骤ST134/ST136)。
在步骤ST134/ST136的记录步骤之后,合并处理正好完成。在当前例子中,合并处理根据预定的合并起始条件执行。首先,作为步骤ST134/ST136中记录的结果,注册处理部件203判断是否满足合并起始条件(步骤ST137)。当不满足合并起始条件时(步骤ST137中的否),该处理结束。此外,在前述实施例中所述的上述合并处理形式的起始条件,也适用于当前的第十一实施例。当满足合并起始条件时(步骤ST137中的是),注册处理部件203判断另一个小型全文注册索引存储部件(在此例中,为小型全文注册索引存储部件B(209b)/A(209a))是否正在进行合并处理(步骤ST138)。此外,在步骤ST138中,注册处理部件203还判断小型全文注册索引存储部件B(209b)/A(209a)是否正在进行合并处理。当小型全文注册索引存储部件B(209b)/A(209a)正在进行合并处理时(步骤ST138中的是),注册处理部件203等待合并处理结束。在这里,解释了大多数关于合并处理的判断的假设情况。
当满足合并起始条件时,并且另一个小型全文注册索引存储部件B(209b)/A(209a)没有执行合并处理时(步骤ST138中的否),注册处理部件203根据小型全文注册索引存储部件A(209a)/C中的小型全文注册索引A/C,启动与附图25中所示的步骤ST47-ST49相似的合并处理(步骤ST140-ST142),并将下一个注册处理所要执行的记录的存储部件,从小型全文注册索引存储部件A(209a)/C转换到另一个小型全文注册索引存储部件B(209b)/A(209a)(步骤ST139)。当启动合并处理时,合并部件211与注册处理部件203异步地执行合并处理。此外,存储部件管理部件212可以根据合并处理或适时地删除多余的全文注册索引存储部件(在下一处理中不用的)。
《删除处理》在执行删除处理的过程中,首先,用户通过输入部件201输入要删除的文档的文档标识符。接着,删除处理部件204从文档数据存储部件207中读取相应于该文档标识符的文档数据(附图34中的步骤ST151)。进一步地,删除处理部件204利用文本分割部件206从文档数据中获得部分字符串(标记)和该标记的出现位置信息(步骤ST152)。
接着,删除处理部件204判断该文档标识符是否已注册在小型全文注册索引中(步骤ST153)。当文档标识符已在小型全文注册索引中注册时,则从小型全文注册索引存储部件中删除该标记的出现位置信息(步骤ST155)。当文档标识符没有在小型全文注册索引中注册时(即,在大型全文搜索索引中注册了该文档标识符时),执行如下的小型全文删除索引存储部件的记录过程。
根据删除处理部件204的命令,或适时地,存储部件管理部件212判断当前是否还存在可用的小型全文删除索引存储部件(步骤ST154)。当不存在可用的小型全文删除索引存储部件时(步骤ST154中的否),存储部件管理部件212新建另一个小型全文删除索引存储部件(例如,小型全文删除索引存储部件C)(步骤ST157)。而存在可用的小型全文删除索引存储部件时(步骤ST154中的是,或步骤ST157之后),删除处理部件204在那时所用的小型全文删除索引存储部件(例如,小型全文删除索引存储部件A(210a)/C)中,记录文档标识符和该标记的出现位置信息(步骤ST156/ST158)。随后,删除处理部件204从文档数据存储部件207中删除相应于该文档标识符的文档数据(步骤ST175)。
在步骤ST156/ST158的记录步骤之后,合并处理正好完成。在当前例子中,根据预定的合并起始条件执行合并处理。首先,作为在步骤ST156/ST158的记录的结果,删除处理部件204判断是否满足合并起始条件(步骤ST159)。当不满足合并起始条件时(步骤ST159中的否),在执行完步骤ST175之后,该处理结束。此外,如上面所提到的,在前述实施例中所描述的上述的合并处理形式的起始条件,也适用于当前的第十一实施例。当满足合并起始条件时(步骤ST159中的是),删除处理部件204判断另一个小型全文删除索引存储部件(在此例中,为小型全文删除索引存储部件B(210b)/A(210a))是否正在进行合并处理(步骤ST170)。此外,在步骤ST170中,删除处理部件204还判断小型全文删除索引存储部件B(210b)/A(210a)是否正在进行删除处理。当小型全文删除索引存储部件B(210b)/A(210a)正在进行删除处理时(步骤ST170中的是),该删除处理部件204等待合并处理结束。在这里,解释了大多数关于合并处理的判断的假设情况。
当满足合并起始条件时,并且另一个小型全文删除索引存储部件B(210b)/A(210a)没有进行合并处理时(步骤ST170中的否),删除处理部件204根据小型全文删除索引存储部件A(210a)/C中的小型全文删除索引A/C,启动与附图26中所示的步骤ST59-ST61相似的合并处理(步骤ST172-ST174),并将下一个删除处理所要执行的记录的存储部件从小型全文删除索引存储部件A(210a)/C转换到另一个小型全文删除索引存储部件B(209b)/A(210a)(步骤ST171)。当启动合并处理时,合并部件211与删除处理部件204异步地执行合并处理。另外,存储部件管理部件212可以在合并处理中或适时地删除多余的全文删除索引存储部件(在下一处理中不用的)。
《搜索处理》本发明第十一实施例的搜索处理基本上与上面参照附图24所描述的搜索处理相似,并且,附图24中的步骤ST34到ST39分别相应于附图32中的步骤ST124到ST129,只是,步骤ST126中,搜索处理部件205,利用当前所有的小型全文注册索引存储部件中的小型全文注册索引,得到一组(Ri)包含搜索字符串的文档数据的文档标识符(步骤ST126)。进一步地,在步骤ST127中,搜索处理部件205利用当前存在的所有小型全文删除索引存储部件的小型全文删除索引,得到一组(Rd)包含搜索字符串的文档数据的文档标识符(步骤ST127)。搜索处理部件205对获得的多组文档标识符(Rs,Ri,Rd)执行下列一组操作,以便获得搜索结果(R)(步骤ST128),并通过输出部件202,将一组含有搜索字符串的文档数据的文档标识符作为搜索结果(R)输出给用户(步骤ST129)。
R=Rs+Ri-Rd,其中,+代表逻辑OR操作符,-代表逻辑NOT操作符。
此外,本发明不仅适用于上述全文搜索装置,也适用于如上面参照全文搜索装置处理的实例的流程图所描述的全文搜索系统中的全文搜索方法。并且,本发明也适用于用来实现全文搜索装置功能的程序、用来实现组成全文搜索装置的部件的功能的程序、用来执行全文搜索方法的程序、用来执行所述处理步骤的程序,或存有任一程序的计算机可读记录介质。
<实施例12>
这里将描述一实施例,其中用来实现依照每个前述实施例的全文搜索的功能的程序和数据存储在记录介质中。特别地,记录介质可以为CD-ROM,磁光盘,DVD-ROM,FD,闪存,以及各种类型的ROM和RAM,等等。所述使计算机执行依照每个前述实施例的全文搜索装置的功能以便实现全文搜索功能的程序,记录在可发行的记录介质中,从而有利于所述功能的实现。依照本发明的全文搜索装置的功能可以通过在例如计算机的信息处理装置中安装上述记录介质来实现,并通过信息处理装置读取该程序,或者在信息处理装置的存储介质中存储该程序,并在需要时读取该程序。
本发明并不限于所揭示的特定实施例,在不背离本发明的范围内可以进行变更和修改。
本申请是以一下的日本优先权申请为基础的2002年6月6日提交的NO.2002-165580,2002年6月11日提交的NO.2002-169487以及2002年7月23日提交的NO.2002-214343,其内容这里全部合并使用。
权利要求
1.一种管理数据库的数据库管理系统,所述系统包括用于搜索的第一数据保存部件,其高速执行数据的搜索操作及低速执行数据的变更操作;用于插入和删除的第二数据保存部件,其中每一个都低速执行数据的搜索操作,以及高速执行数据的变更操作;数据传送部件,其将数据从每个所述第二数据保存部件传送到所述第一数据保存部件,以便反映插入操作或删除操作的结果;数据库操作请求处理部件,其执行对数据库的操作请求;事务处理部件,其保证所述数据传送部件和所述数据库操作请求处理部件之间的数据的一致性;以及文件转换部件,其在对数据库的操作请求和异步合并处理之间将所述第二数据保持部件转换为所述第一数据保存部件,以便当所述第二数据保存部件的其中之一用于异步合并处理时,另一个第二数据保存部件用于对数据库的操作请求。
2.根据权利要求1所述的数据库管理系统,其包括三个或更多第二数据保存部件;以及数据量判断部件,其判断用于数据库的操作请求的第二数据保存部件中的数据的数量是否超出了界限值,其中所述文件转换部件将所述数据量判断部件判断超过所述界限值的所述第二数据保存部件转换用于合并处理,并将另一个未用的第二数据保存部件转换为用于对数据库的操作请求的第二数据保存部件。
3.根据权利要求1所述的数据库管理系统,其包括数据量判断部件,判断用于对数据库的操作请求的所述第二数据保存部件的数据的数量是否超出了界限值,其中所述文档转换部件将所述数据量判断部件判断超过所述界限值的所述第二数据保存部件转换用于合并处理,并动态地新建第二数据保存部件,以便将所述新建的第二数据保存部件转换为用于数据库操作请求的第二数据保存部件。
4.根据权利要求1所述的数据库管理系统,包括监视计时器,其监视一设置时间的经过,以及当经过了所述设置时间时请求释放一锁,其中所述数据库操作请求处理部件在接收到搜索请求时启动所述监视定时器,所述数据传送部件共同执行多个索引单元的所述合并处理,而不释放该锁,直到经过了所述设置时间,以及当经过所述设置的时间时,所述数据传送部件为合并处理释放所述锁,并将控制传递给所述搜索请求。
5.根据权利要求4所述的数据库管理系统,其中在所述监视定时器中设置的所述设置时间是搜索中的最大可延迟的时间。
全文摘要
本发明提供了一种管理数据库的数据库管理系统,其包括第一数据保存部件,其用于快速执行数据的搜索操作及低速执行数据的变更操作的搜索;第二数据保存部件,每个都用于慢速执行的数据的搜索操作及快速执行数据的变更操作的插入和删除;数据传送部件,其将数据从每个第二数据保存部件传送到第一数据保存部件,以便反映插入操作或删除操作的结果;数据库操作请求处理部件,其执行对数据库的操作请求;事务处理部件,其保证了数据传送部件和数据库操作请求处理部件之间的数据的一致性;以及文档转换部件,其在对数据库的操作请求和异步合并处理之间将第一数据保存部件转换为第二数据保存部件。
文档编号G06F12/00GK1770162SQ200510126849
公开日2006年5月10日 申请日期2003年6月6日 优先权日2002年6月6日
发明者大瀬户太 申请人:株式会社理光
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1