CN1584884B - 检索结构化文档的数据的设备 - Google Patents
检索结构化文档的数据的设备 Download PDFInfo
- Publication number
- CN1584884B CN1584884B CN2004100483380A CN200410048338A CN1584884B CN 1584884 B CN1584884 B CN 1584884B CN 2004100483380 A CN2004100483380 A CN 2004100483380A CN 200410048338 A CN200410048338 A CN 200410048338A CN 1584884 B CN1584884 B CN 1584884B
- Authority
- CN
- China
- Prior art keywords
- retrieval
- label
- data
- keyword
- document
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/83—Querying
- G06F16/835—Query processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
根据检索条件生成标签登记信息、关键词登记信息、以及状态管理信息,并且根据该状态管理信息由从结构化文档的文档数据中检测该标签登记信息中登记的标签的标签检索切换到检测该关键词登记信息中登记的关键词的关键词检索,或者由该关键词检索切换到该标签检索。
Description
技术领域
本发明涉及一种用于检索诸如XML(可扩展标记语言)文档等的结构化文档的数据的设备。
背景技术
XML文档是一种通过使用标签(tag)描述文档数据的各个元素来进行结构化的文档,并且XML文档具有层级结构。当通过树结构来表示XML文档时,将树的各个元素称为节点。存在如下两种检索XML文档的数据的传统方法。
(a)通过由树结构的对象表示要检索的所有文档的所有节点来将文档展开。如果根据检索请求条件对多个节点进行检索,并且满足该条件,则检索并提取关于要返回的节点的信息。将该检索方法称为索引系统。
(b)应检索-返回请求,将要检索的所有文档临时展开在一个二维表中。这时,按照需要为表达为给定节点的子节点的多个节点分配更多的表行。当根据检索请求条件对该表进行检索并且满足该条件时,提取关于要返回的单元(节点)的信息。
例如,当要对如图1A所示的两个文档进行检索时,以上述方法(a)生成如图1B所示的树结构的文档数据。假设输入以下检索表达式作为检索请求。
/doc/Grp{/A=′X′AND/B=′1000′} (1)
该检索表达式表示如下条件:在由路径/doc/Grp/A所指定的节点中包含有关键词′X′,并且在由路径/doc/Grp/B所指定的节点中包含有关键词′1000′。在这种情况下,通过跟踪如图1C所示的文档数据的节点,表明文档1满足该检索请求条件。
在上述方法(b)中,生成如图1D所示的具有表结构的文档数据。在图1A所示的文档1中,由于存在两个不同的“Grp”节点作为节点“doc”的子节点,所以将文档1的数据存储在图1D所示的表的两行中。在这种情况下,如图1E所示,通过检索表达式(1)对该表进行检索,并且文档1满足该检索请求条件。
在上述方法(a)和(b)中,为了预先对所有待检索文档进行展开,除各个XML文档之外,还存储诸如DTD(文档类型定义)、纲要(schema)等的XML定义信息、与该XML定义信息和XML文档之间的关系相关的信息、以及与XML文档中的各个标签和节点相关的信息。
此外,当检索结构化文档时,利用检索条件作为输入生成分级自动机(automaton),并且可以利用所生成的分级自动机来进行检索(例如,参见专利文献1)。
专利文献1:日本专利申请特开2000-90091号公报。
但是,利用上述的传统检索方法存在以下问题。
在进行检索处理之前,要对待检索的文档进行临时分析。因此,当存储待检索的文档时,需要非常长的处理时间来进行诸如分析处理、展开处理等的处理。
由于将待检索的文档分为多个标签和多个节点,以优化检索,因此,当存储待检索的文档时,需要原始文档的数倍存储空间。
当检索并分析文档时,有必要在存储器内将所存储的文档数据的全部或者部分进行临时展开,以识别满足检索请求条件的节点。因此,根据所存储的文档数据量,极大地增加了用于检索和分析的存储器资源的消耗量。
根据存储系统的逻辑(logic),将要检索的一组XML文档统一为根据所指定的XML定义信息规定的标准化格式。此外,当进行检索时,使用根据该标准化格式的检索表达式。因此,当对多个不同格式的XML文档进行检索时,需要在检索不同格式的XML文档后对所得到的检索结果进行合并。
在与本发明接近的专利文献2中(“Processing XML Streams withDeterministic Automata”,Technical Report,University ofWashington,https://citeseer.ist.psu.edu/green01processing.html,2001),通过把XML数据转换为SAX(用于XML的简单API)来获取事件,所有包含标签和关键词的查询都被转换为单个DFA(lazy deterministicfinite automata,松散的确定性有限自动机),基于该单个DFA来进行状态转换,然后指定用于匹配多个XML路径(XPath)查询的路径。
但是,在对比文件1中必须使用外部的SAX工具来执行在SAX内的数据检索以及从SAX接收到事件之后的数据检索。并且,由于在对比文件1中仅仅存在单个DFA,因而在使用标签登记信息的标签检索和使用关键词登记信息的关键词检索之间不可能进行切换。
发明内容
本发明旨在提供一种检索设备,用于减少在存储和检索多个待检索的文档的过程中所需的处理时间、存储空间以及存储器消耗。
根据本发明的检索设备包括:生成装置、读取装置和检索装置,并且该检索设备根据检索条件检索使用标签而结构化的文档的数据。
具体来说,本发明的检索设备包括:生成装置,用于分析所述检索条件,并在检索结构化文档之前分别生成:标签登记信息,包含标签的已登记字符串,该标签表示包含在由所述检索条件指定的检索路径中的各个元素;关键词登记信息,包含由所述检索条件指定的关键词的已登记字符串;以及状态管理信息,用于使用所述检索路径来管理当前检索状态;读取装置,用于以预定量顺序地读取待检索的所述结构化文档的文档数据;以及检索装置,用于在使用所述状态管理信息在从所读取的数据串中检测所述标签登记信息中登记的标签的标签检索以及从所述读取的数据串中检测所述关键词登记信息中登记的关键词的关键词检索之间进行切换的同时,检索所述结构化文档的文档数据,并且输出检索结果;其中,所述状态管理信息包含:用于管理当前检索状态和所述检索路径中的元素之间的对应关系的信息,以及指定要将所述标签检索切换为所述关键词检索的状态的信息;所述检索装置在通过所述标签检索检测到已登记标签时,查询所述状态管理信息,并且在当前检索状态为要将所述标签检索切换为所述关键词检索的状态时,从所述标签检索切换到所述关键词检索。
该检索装置在利用状态管理信息在从所读取的数据串中检测在标签登记信息中登记的标签的标签检索以及从所读取的数据串中检测在关键词登记信息中登记的关键词的关键词检索之间进行切换的同时,检索结构化文档的文档数据,并且输出检索结果。
附图说明
图1A示出了待检索的文档;
图1B示出了树结构的文档数据;
图1C示出了第一检索方法;
图1D示出了表结构的文档数据;
图1E示出了第二检索方法;
图2示出了根据本发明的检索设备的原理;
图3示出了检索设备的构成;
图4A示出了第一文档;
图4B示出了第二文档;
图5示出了标签自动机;
图6示出了字符串;
图7示出了标签表;
图8示出了状态管理信息;
图9示出了关键词自动机;
图10示出了逻辑表达式表;
图11是检索处理的流程图;
图12示出了检索表和更新表的初始状态;
图13示出了添加处理的第一过程;
图14示出了添加处理的第二过程;
图15示出了添加处理的第三过程;
图16示出了更新处理;
图17示出了删除处理;
图18示出了批量删除处理;
图19示出了信息处理装置的构成;以及
图20示出了记录介质。
具体实施方式
下面将参照附图对本发明的优选实施例进行说明。
图2表示根据本发明的检索设备的原理。图2所示的检索设备包括生成装置101、读取装置102、检索装置103,并且该检索设备根据检索条件对使用标签而结构化的文档的数据进行检索。
生成装置101分析检索条件,并且生成:标签登记信息104,包含标签的已登记字符串,该标签表示包含在由检索条件所指定的检索路径中的各个元素;关键词登记信息105,包含由检索条件所指定的关键词的已登记字符串;以及状态管理信息106,用于利用检索路径来管理当前检索状态。读取装置102以预定量顺序地读取要检索的结构化文档的文档数据。
检索装置103在利用状态管理信息106在从所读取的数据串中检测标签登记信息104中登记的标签的标签检索以及从所读取的数据串中检测关键词登记信息105中登记的关键词的关键词检索之间进行切换的同时,检索结构化文档的文档数据,并输出检索结果。
利用上述检索设备,在顺序读取预定量的文档数据的同时进行检索。因此,不必预先将要检索的所有文档的文档数据进行扩展。此外,由于在检索由检索条件所指定的元素的标签的标签检索和检索元素中的关键词的关键词检索之间进行适当切换的同时进行检索,所以即使不知道待检索文档的结构,也可以利用关键词对满足检索条件的元素的内容进行核对。因此,待检索的文档可以不是特定XML定义信息所指定的格式。
生成装置101、读取装置102、检索装置103、标签登记信息104、关键词登记信息105、以及状态管理信息106例如分别与检索表达式分析单元213、数据读取单元215、XML检索单元214、标签自动机222、关键词自动机224以及状态管理信息223相对应。
根据本发明,待检索的文档并不限于标准格式的文档,还可以存储为具有不同编排模式的XML文档。因此,可以减少待检索的文档的存储空间,并且不需要对待检索文档进行分析处理,从而提高了存储速度。
此外,由于存储资源的消耗不是基于待检索文档的数据量,而是取决于检索条件的数据量,所以有限量的存储资源就可以足够用于检索。
另外,即使利用不同格式的XML文档进行检索,也可以不考虑各种格式而进行检索,并且可以提高检索速度。
图3示出了根据本发明实施例的检索设备的构成。图3所示的检索设备201包括操作分析单元211、数据检索单元212、检索表达式分析单元213、XML检索单元214、数据读取单元215、检索结果存储单元216、数据同步单元217、数据写入单元218以及数据存储单元219。
操作分析单元211接收来自数据操作应用程序202的处理请求,分析该处理请求以检查要求了哪个处理请求:数据的检索、添加、删除、或者批量删除。如果该处理请求是指检索请求,则将检索请求传送到数据检索单元212。如果该处理请求是指添加请求、更新请求、删除请求或者批量删除请求,则将该处理请求传送到数据写入单元218。
数据检索单元212将包含在所接收的检索请求条件(以下将其称为检索条件)中的检索表达式传送给检索表达式分析单元213。检索表达式分析单元213分析所接收的检索表达式,并且提取诸如指定要检索的元素的路径、包含在该路径中的各元素的标签、要检索的关键词等的信息。然后,根据所提取的信息,生成标签自动机222、状态管理信息223、以及关键词自动机224,并且将它们传送到XML检索单元214。状态管理信息223是利用所指定的路径来管理检索状态的信息。
自动机由多个状态的集合来表示,该多个状态包含初始状态和受理状态,并且通过表示转换的方向的箭头来连接两个状态。在初始状态中,自动机首先根据输入数据的值确定转换目标的状态,并且转换到该状态。然后,根据下一输入数据的值确定转换目标的状态,并且转换到该状态。在受理状态中,设定关于从初始状态输入到受理状态的数据串的信息。即,在自动机中登记该数据串。
自动机根据该顺序输入的数据串,通过重复进行状态转换而将所输入的数据串与已登记数据串进行核对。当达到受理状态时,确定所输入的数据串与对应于该状态的已登记数据串匹配,并且输出关于已登记数据串的信息。
XML检索单元214具有逻辑表达式表221,并且利用从检索表达式分析单元213接收到的标签自动机222、状态管理信息223以及关键词自动机224来检索存储在数据存储单元219中的待检索XML文档。此时,数据读取单元215从数据存储单元219读取所有文档的预定量的文档数据,并且将其传送到XML检索单元214。当开始检索处理时,将逻辑表达式表221的值设置为“假”。
XML检索单元214将从数据读取单元215接收的数据输入到标签自动机222,并且在命中数据时根据从标签自动机222输出的命中信息来访问状态管理信息223。如果由命中信息所指定的层级与登记在状态管理信息223中的检索条件的层级匹配,则将后续数据输入到关键词自动机224。当检测到登记在关键词自动机224中的关键词时,将关于相应文档的信息存储在检索结果存储单元216中。
由元素的起始标签和结束标签形成标签自动机222。当从输入文档数据中检测到起始标签和结束标签时,输出命中信息。一旦接收到该信息,XML检索单元214跟踪状态管理信息223的各个元素,并且在到达与检索条件相匹配的元素时,开始将文档数据输入到关键词自动机224。
该关键词自动机224是由检索条件的关键词、起始标签以及结束标签形成的,并且在从输入文档数据中检测到检索条件的关键词时输出命中信息。一旦接收到该信息,XML检索单元214就将逻辑表达式表221中的相应值改变为“真”。
当从输入文档数据中检测到结束标签时,关键词自动机224再次输出命中信息。一旦接收到该信息,XML检索单元214就确定该检索处理已达到经过检索条件的各个元素的阶段,评价关于该元素的逻辑表达式,并且初始化逻辑表达式表221中的相应值。然后,访问状态管理信息223中的下一元素。当经过根节点的元素时,进行最终逻辑表达式评价,并且确定相应文档是否为真。
接下来,以下参照图4A至11对由图2中所示的检索设备201执行的检索处理进行更详细的说明。
图4A和4B表示存储在数据存储单元219中的待检索文档的示例。假设检索表达式分析单元213已接收到以下检索表达式。
/root/comp/name=‘ABC’ (2)
该检索表达式表示以下条件:在由路径/root/comp/name所指定的元素中包含有关键词‘ABC’。因此,在路径表达中,将符号“/”描述为首部(header),并且通过“/”来划分不同层级的标签。如以下由(a)和(b)所表示的,在描述检索表达式的方法中可以省略包含在路径中的元素的标签。
(a)简化的路径表达1
当描述一路径时,可以利用“//”代替完整的路径来以简化形式表示该路径。可以将“//”用于任何地方。
示例1)/root//comp/name
该表达包含多个路径,例如“/root/comp/name”、“/root/a/b/c/comp/name”、等等。
示例2)//name
该表达包含到达“name”标签的所有路径。
示例3)/root/comp//
该表达包含到达等于或者低于“/root/comp”的层级的所有路径。
(b)简化的路径表达2
当描述一路径时,可以使用“*”代替标签名称以简化形式省略一个标签来表示该路径。可以将“*”用于任何地方。具有“*”的部分可以为任何标签。
示例4)/root/comp/*
该表达包含到达与具有“*”的部分相对应的标签的所有路径。因此,在该表达中可以包含“/root/comp/name”和“/root/comp/code”。
检索表达式分析单元213根据以上表达式(2)生成以下三个逻辑表达式:
/root/comp/name (3)
‘ABC’ (4)
/root/comp/name=‘ABC’ (5)
表达式(3)表示指定待检索元素的路径,表达式(4)表示待检索关键词,表达式(5)是使用比较运算符“=”将表达式(3)与表达式(4)进行组合的逻辑表达式。检索表达式分析单元213根据这些逻辑表达式生成标签自动机222、状态管理信息223、以及关键词自动机224。
图5表示所生成的标签自动机222的示例。在图5中,由圆圈表示各个状态,并且圆圈中的字符表示在进行从先前状态到由该字符标记的状态的状态转换时所输入的字符数据。描述为“in”的状态表示初始状态,而使用命中信息描述的状态表示受理状态。将以下字符串(起始标签等)登记在自动机中。当输入字符串与已登记字符串匹配时,输出相应的命中信息。但是,“_”表示一个字符的空白。
字符串 命中信息
<comp/> 501
<comp> 502
<comp_ 503
<root/> 504
<root> 505
<root_ 506
<name/> 507
<name> 508
<name_ 509
> 510
尽管在图5中为了简便而省略了如图6中所示的字符串,但是图6中所示的字符串也登记在标签自动机222中。例如,当在计算机中通过面向对象的编程来实现自动机时,由一个对象来表示各个状态和各条命中信息。
图7表示在状态管理信息223之前生成的标签表的示例。在图7所示的标签表中,登记了包含在表达式(3)中的各个标签的名称和编号。利用该标签表生成如图8所示的状态管理信息。
图8所示的状态管理信息包含“Initial”、“root”、“comp”、以及“name”四个元素,并且表示指定待检索元素的路径。元素“Initial”表示初始状态,而其他三个元素分别与包含在各个路径中的三个元素相对应。将图7所示的标签表中所登记的标签的名称和编号登记在各个元素中,并且XML检索单元214可以根据该信息访问下一元素。
将“OUTPUT”添加到属于检索条件的层级的元素“name”中。该“OUTPUT”包含表达式(5)中所包含的信息,并且当访问“name”时评价表达式(5)。例如,当以面向对象的程序设计来描述状态管理信息时,通过一个对象来表示各个元素和各个OUTPUT。
图9表示关键词自动机224的示例。图9所示的描述各个状态和状态转换的方法基本上与图5中的相同。状态“in”表示初始状态,而具有命中信息的状态表示受理状态。将以下字符串(关键词等)登记在自动机中,并且当输入了与已登记字符串匹配的字符串时,输出相应的命中信息。
字符串 命中信息
ABC 901
</ 902
尽管在图9中为了简便而省略了图6中所示的字符串,但是实际上图6中所示的字符串也登记在关键词自动机224中。
XML检索单元214从检索表达式分析单元213接收三个逻辑表达式、标签自动机222、状态管理信息223、以及关键词自动机224。如图10所示,在逻辑表达式表中登记所接收的逻辑表达式。在初始状态中,将“假”存储为逻辑表达式表的各个逻辑表达式的值。
然后,XML检索单元214根据图11所示的流程图执行检索处理。在图11所示的示例中,假设将各个XML存储为一条记录。XML检索单元214首先检查是否已完成所有记录的处理(步骤S1101),并且如果存在任何未处理的记录,则执行标签检索处理(步骤1102)。
在标签检索处理中,将文档数据逐个字符地输入标签自动机222,并且当从标签自动机224输出了命中信息时,检查该命中信息的标签是否与记录的结尾相对应(步骤1103)。
如果该命中信息的标签不与记录的结尾相对应,则根据关于该标签的信息查询状态管理信息223(步骤1106),并且检查所查询的元素是否属于检索条件的层级(步骤1107)。如果所查询的元素属于检索条件的层级,则执行关键词检索处理(步骤1108)。
在关键词检索处理中,将后续文档数据逐个字符地输入关键词自动机224,并且当从关键词自动机224输出了命中信息时,检查该命中信息的字符串是否与该标签的结尾相对应(步骤1109)。
如果该字符串不与该标签的结尾相对应,则重复步骤1108中的关键词检索处理。如果该字符串与该标签的结尾相对应,则对与该标签相关的检索表达式进行评价(步骤1105)。然后,根据该标签信息,重复步骤1106及其后续的处理。
如果在步骤1107中所查询的元素不属于该检索条件的层级,则重复步骤1102及其后续的处理。然后,如果在步骤1103中命中信息的标签与该记录的结尾相对应,则执行最终逻辑表达式评价,并且确定该记录是否满足检索条件(步骤1104),并且重复步骤1101及其后续的处理。然后,如果在步骤1101中完成了所有记录的处理,则检索处理结束。
例如,当检索图4A中所示的文档中的记录时,首先在步骤1102中检测<root>标签,并且从图5所示的标签自动机输出命中信息505。在步骤1106中,当查询图8所示的状态管理信息中的“Initial”元素时,标签名称“root”指向下一“root”元素,并且访问该“root”元素。然后,在步骤1107中,检查该“root”元素中是否添加了OUTPUT。
由于该“root”元素中未添加OUTPUT,所以确定该元素不属于检索条件的层级,并且继续步骤1102中的标签检索处理。同样,当检测<comp>标签时,访问状态管理信息的“comp”元素。由于该“comp”元素中未添加OUTPUT,所以继续标签检索处理。
当接着检测<name>标签时,访问状态管理信息的“name”元素。由于该“name”元素中添加了OUTPUT,所以确定该元素属于检索条件的层级。然后,将图10中所示的逻辑表达式表的/root/comp/name的值转换为“真”,并且执行步骤1108中的关键词检索处理。
由于在关键词检索处理中检测到了关键词‘ABC’,所以从图9所示的关键词自动机输出命中信息901。然后,将逻辑表达式表的‘ABC’的值转换为“真”。然而,在步骤1109中,字符串并不与标签的结尾相对应。因此,继续关键词检索处理。
接下来,检测字符串“</”,并且从关键词自动机输出命中信息902。由于该字符串表示结尾标签的首部,所以确定它与<name>标签的结尾相对应,并且在步骤1105中查询逻辑表达式表,并且检查是否满足/root/comp/name=‘ABC’。
在此阶段,逻辑表达式表的/root/comp/name以及‘ABC’的值为“真”,确定满足逻辑表达式,并且将逻辑表达式表的相应值转换为“真”。因此,图4A中所示的文档为满足检索条件的文档的候选。此时,将/root/comp/name以及‘ABC’的值转换为初始值“假”。
由于已经检测到结尾标签,所以在步骤1106中对状态管理信息进行反向跟踪。在此操作中,访问恰在状态管理信息的元素“name”之前的元素“comp”。但是,由于该元素并不属于该检索条件的层级,所以继续标签检索处理。
当检测到最终的</root>标签时,在步骤1103中确定该标签与记录的结尾相对应。因此,在步骤1104中,通过查询逻辑表达式表检查是否已满足该检索条件。
在此阶段,由于该逻辑表达式表的/root/comp/name=‘ABC’的值为“真”,所以确定满足该检索条件,并且将关于图4A中所示文档的标识信息作为与满足该检索条件的文档有关的信息存储在检索结果存储单元216中。此时,将逻辑表达式表的/root/comp/name=‘ABC’的值设置为“假”,即,初始值。
对图4B中所示文档的记录进行类似的检索,但是该记录的元素“name”不包含关键词‘ABC’。因此,不满足检索条件并且不将关于图4B所示文档的标识信息存储在检索结果存储单元216中。
当完成所有记录的处理之后,将存储在检索结果存储单元216中的与该文档有关的标识信息作为检索结果返回给应用程序202。
以下将参照图12至18对由图3中所示的数据读取单元215、数据同步单元217、以及数据写入单元218所执行的处理进行详细说明。
数据同步单元217保存如图12所示的两个数据管理表1201和1202,并且将可用的数据管理表传送到数据读取单元215和数据写入单元218。数据管理表1201和1202保存数据存储单元219中存储的文档数据1203、1204、1205以及1206的地址,并且将这两个数据管理表用作为索引表,用以访问文档数据。在此示例中,假设文档数据1203、1204、1205以及1206中的每一个都与一个XML文档相对应。
数据同步单元217通过将任何数据管理表的地址设置为检索表的地址1207以及更新表的地址1208来确定由数据读取单元215和数据写入单元218使用的数据管理表。在图12中,将数据管理表1201的地址P1设置为地址1207,并且将数据管理表1202的地址P2设置为地址1208。
将由地址1207指定的数据管理表1201作为检索表传送到数据读取单元215,并且将由地址1208指定的数据管理表1202作为更新表传送到数据写入单元218。数据读取单元215利用在上述检索处理中所接收的检索表,从数据存储单元219读取文档数据。
一旦从操作分析单元211接收到添加请求、更新请求、删除请求或者批量删除请求,数据写入单元218就使用所接收的更新表对数据存储单元219的文档数据进行添加处理、更新处理、删除处理或者批量删除处理。在将关于处理的信息写入更新表之后,向数据同步单元217发送处理结束通知。
一旦接收到该通知,数据同步单元217就在所存储的地址1207和1208之间进行切换,并且将已经用作更新表的数据管理表1202作为新的检索表传送到数据读取单元215。然后,将数据管理表1202的内容复制到另一个数据管理表1201。
通过上述配置,即使在由数据写入单元218执行的添加处理、更新处理、删除处理以及批量删除处理的过程中,数据读取单元215也可以读取文档数据。
图13至15表示新的文档数据的添加处理的过程。首先,如图13所示,数据写入单元218将要添加的文档数据1301存储到数据存储单元219中,并且将其存储地址添加到数据管理表1202中。
如图14所示,数据同步单元217在地址1207和地址1208的值之间进行交换。因此,数据管理表1201用作为更新表,而数据管理表1202用作为检索表。如图15所示,将数据管理表1202的内容复制到数据管理表1201,并且将新的更新表的内容更新为最新数据。
图16表示已有文档数据1205的更新处理。首先,数据写入单元218将更新文档数据1601存储在数据存储单元219中,并且将记录在数据管理表1202中的文档数据1205的地址改变为文档数据1601的存储地址。然后,在与图14至15所示相似的过程中,数据同步单元217在地址1207和地址1208的值之间进行交换,并且将数据管理表1202的内容复制到数据管理表1201。
图17表示已有文档数据1206的删除处理。首先,数据写入单元218删除记录在数据管理表1202中的文档数据1206的地址。然后,在与图14和15中相似的过程中,数据同步单元217在地址1207和地址1208的值之间进行交换,并且将数据管理表1202的内容复制到数据管理表1201。
图18表示数据存储单元219的所有文档数据的批量删除处理。首先,数据写入单元218删除记录在数据管理表2102中的所有文档数据的地址。然后,在与图14和15中相似的过程中,数据同步单元217在地址1207和1208的值之间进行交换,并且将数据管理表1202的内容复制到数据管理表1201。
在上述实施例中,描述了对XML文档执行的检索处理,但是本发明不仅可以应用于对XML文档的处理,还可以应用于对包含SGML(标准通用标记语言)文档在内的任何结构化文档的处理。
在上述实施例中,在检测标签和关键词时使用了标签自动机和关键词自动机,但是也可以用其他标签登记信息和关键词登记信息来代替它们。
例如,可以由图19所示的信息处理装置(计算机)来配置图3所示的检索设备。图19所示的信息处理装置包含CPU(中央处理单元)1901、存储器1902、输入装置1903、输出装置1904、外部存储装置1905、介质驱动装置1906、以及网络连接装置1907。它们通过总线1908互连。
存储器1902例如包含ROM(只读存储器)、RAM(随机存取存储器)等,并且存储在数据处理中所使用的程序和数据。CPU 1901通过使用存储器1902执行程序来进行必要的处理。
图3中所示的检索结果存储单元216与存储器1902相对应。图3中所示的操作分析单元211、数据检索单元212、检索表达式分析单元213、XML检索单元214、数据读取单元215、数据同步单元217、以及数据写入单元218与通过执行存储在存储器1902中的程序而实现的多个功能相对应。在存储器1902中动态地生成图3所示的逻辑表达式表221、标签自动机222、状态管理信息223、以及关键词自动机224。
输入装置1903例如可以是键盘、定点设备、触摸板等,并且由用户使用来输入指令和信息。输出装置1904例如可以是显示器、打印机、扬声器等,并且用于向用户输出查询和处理结果等。
外部存储装置1905例如可以是磁盘装置、光盘装置、磁光盘装置、磁带装置等。信息处理装置使外部存储装置1905存储程序和数据,以使得可以在必要时将这些程序和数据加载到存储器1902中。还可以将外部存储装置1905用作为图3所示的数据存储单元219。
介质驱动装置1906驱动便携式记录介质1909,并且存取所记录的内容。便携式记录介质1909可以是任何计算机可读记录介质,例如存储卡、软盘、CD-ROM(光盘只读存储器)、光盘、磁光盘等。用户可以将程序和数据存储在便携式记录介质1909上,并且将它们加载到存储器1902中,以在必要时使用。
将网络连接装置1907连接到诸如LAN(局域网)等的任何通信网络,用于在通信中进行数据转换。信息处理装置在必要时通过网络连接装置1907从外部装置接收程序和数据,并且在将它们加载到存储器1902中之后使用它们。
图20表示能够提供用于图19所示的信息处理装置的程序和数据的计算机可读记录介质。将存储在便携式记录介质1909和服务器2001的数据库2003中的程序和数据加载到信息处理装置2002的存储器1902中。服务器2001生成传送信号,用于传送程序和数据,并且通过网络中的任意传输介质将它们传送到信息处理装置2002。CPU 1901使用该数据执行该程序,并进行必要的处理。
Claims (4)
1.一种检索设备(201),该检索设备根据检索条件对使用标签结构化的文档的数据进行检索,该检索设备包括:
生成装置(101,213),用于分析所述检索条件,并在检索结构化文档之前分别生成:标签登记信息(104,222),包含标签的已登记字符串,该标签表示包含在由所述检索条件指定的检索路径中的各个元素;关键词登记信息(105,224),包含由所述检索条件指定的关键词的已登记字符串;以及状态管理信息(106,223),用于使用所述检索路径来管理当前检索状态;
读取装置(102,215),用于以预定量顺序地读取待检索的所述结构化文档的文档数据;以及
检索装置(103,214),用于在使用所述状态管理信息在从所读取的数据串中检测所述标签登记信息中登记的标签的标签检索以及从所述读取的数据串中检测所述关键词登记信息中登记的关键词的关键词检索之间进行切换的同时,检索所述结构化文档的文档数据,并且输出检索结果;
其中,所述状态管理信息包含:用于管理当前检索状态和所述检索路径中的元素之间的对应关系的信息,以及指定要将所述标签检索切换为所述关键词检索的状态的信息;
所述检索装置在通过所述标签检索检测到已登记标签时,查询所述状态管理信息,并且在当前检索状态为要将所述标签检索切换为所述关键词检索的状态时,从所述标签检索切换到所述关键词检索。
2.根据权利要求1所述的检索设备,其中
所述读取装置在所述标签检索中,从所述结构化文档的文档数据中逐个字符地读取字符串;
所述检索装置将所读取的字符串逐个字符地与所述标签登记信息中登记的所述标签的已登记字符串进行比较;
所述检索装置在所读取的字符串与所述标签的已登记字符串匹配时,通过查询所述状态管理信息而检查当前检索状态;
所述检索装置在当前检索状态为要将所述标签检索切换为所述关键词检索的状态时,从所述标签检索切换到所述关键词检索;
所述检索装置在所述关键词检索中,读取与所述标签的已登记字符串匹配的所述字符串后面的字符串;
所述检索装置将所读取的字符串逐个字符地与所述关键词登记信息中登记的所述关键词的已登记字符串进行比较;以及
所述检索装置在所读取的字符串与所述关键词的已登记字符串匹配的情况下,确定所述结构化文档是满足所述检索条件的文档的候选。
3.根据权利要求1所述的检索设备,还包括
写入装置,其在所述检索装置对所述结构化文档的文档数据进行检索时,执行对所述结构化文档的文档数据进行添加、更新、删除、以及批量删除中的至少一种操作。
4.根据权利要求3所述的检索设备,其中
所述检索装置使用用于访问所述结构化文档的文档数据的两个数据管理表(1201,1202)中的一个来执行检索所述结构化文档的文档数据的处理,同时所述写入装置使用另一个数据管理表对所述结构化文档进行操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003296766A JP4365162B2 (ja) | 2003-08-20 | 2003-08-20 | 構造化文書のデータを検索する装置および方法 |
JP296766/2003 | 2003-08-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1584884A CN1584884A (zh) | 2005-02-23 |
CN1584884B true CN1584884B (zh) | 2010-07-21 |
Family
ID=34056235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004100483380A Expired - Fee Related CN1584884B (zh) | 2003-08-20 | 2004-06-25 | 检索结构化文档的数据的设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7457799B2 (zh) |
EP (1) | EP1508864A3 (zh) |
JP (1) | JP4365162B2 (zh) |
KR (1) | KR100638695B1 (zh) |
CN (1) | CN1584884B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521725B1 (en) | 2003-12-03 | 2013-08-27 | Google Inc. | Systems and methods for improved searching |
JP2005309727A (ja) * | 2004-04-21 | 2005-11-04 | Hitachi Ltd | ファイルシステム |
KR100716113B1 (ko) * | 2005-10-06 | 2007-05-09 | 엔에이치엔(주) | 웹 검색에서의 웹 데이터 태깅 방법 및 웹 데이터 태깅시스템 |
US7912933B2 (en) * | 2005-11-29 | 2011-03-22 | Microsoft Corporation | Tags for management systems |
US7617190B2 (en) * | 2005-11-29 | 2009-11-10 | Microsoft Corporation | Data feeds for management systems |
US7835806B2 (en) * | 2007-01-29 | 2010-11-16 | Rockwell Automation Technologies, Inc. | Method for indirect access to controller data using name stored in string tag |
WO2008117454A1 (ja) * | 2007-03-27 | 2008-10-02 | Fujitsu Limited | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法 |
KR100898475B1 (ko) * | 2007-04-10 | 2009-05-21 | 엔에이치엔(주) | 디렉터리 태깅 서비스를 제공하는 방법 및 상기 방법을수행하는 시스템 |
KR100905494B1 (ko) * | 2007-09-07 | 2009-07-01 | 박수민 | 파일 관리 시스템 및 파일 관리를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 |
JP5041003B2 (ja) | 2007-10-17 | 2012-10-03 | 富士通株式会社 | 検索装置および検索方法 |
WO2009093307A1 (ja) * | 2008-01-22 | 2009-07-30 | Fujitsu Limited | 検索装置および検索方法 |
US8346791B1 (en) | 2008-05-16 | 2013-01-01 | Google Inc. | Search augmentation |
JP5195149B2 (ja) * | 2008-08-11 | 2013-05-08 | 富士通株式会社 | 真偽判定方法 |
JP5200762B2 (ja) * | 2008-08-25 | 2013-06-05 | 富士通株式会社 | 検索方法および検索プログラム |
US8346792B1 (en) | 2010-11-09 | 2013-01-01 | Google Inc. | Query generation using structural similarity between documents |
JP5782937B2 (ja) * | 2011-09-08 | 2015-09-24 | 富士通株式会社 | タグ管理装置、タグ管理システムおよびタグ管理プログラム |
JP6028393B2 (ja) * | 2012-05-24 | 2016-11-16 | 富士通株式会社 | 照合プログラム、照合方法および照合装置 |
JP5958088B2 (ja) * | 2012-05-29 | 2016-07-27 | 富士通株式会社 | 更新プログラム、更新方法、および更新装置 |
CN103488639B (zh) * | 2012-06-11 | 2016-12-07 | 北京大学 | 一种xml数据的查询方法 |
US9104730B2 (en) * | 2012-06-11 | 2015-08-11 | International Business Machines Corporation | Indexing and retrieval of structured documents |
JP5998942B2 (ja) * | 2013-01-08 | 2016-09-28 | 富士通株式会社 | 更新方法、更新プログラム、および照合処理装置 |
CN104376008A (zh) * | 2013-08-14 | 2015-02-25 | 深圳市众鸿科技股份有限公司 | Xml绝对路径转换方法 |
JP6737117B2 (ja) * | 2016-10-07 | 2020-08-05 | 富士通株式会社 | 符号化データ検索プログラム、符号化データ検索方法および符号化データ検索装置 |
CN107291930A (zh) * | 2017-06-29 | 2017-10-24 | 环球智达科技(北京)有限公司 | 权重数的计算方法 |
CN112306416B (zh) * | 2020-11-04 | 2022-09-27 | 福州汇思博信息技术有限公司 | 一种自动读写nv参数的方法及终端 |
CN117556790B (zh) * | 2024-01-02 | 2024-04-16 | 四川大学华西医院 | 医疗信息处理方法、装置、设备和存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3040945B2 (ja) * | 1995-11-29 | 2000-05-15 | 松下電器産業株式会社 | 文書検索装置 |
JP3715444B2 (ja) * | 1998-06-30 | 2005-11-09 | 株式会社東芝 | 構造化文書保存方法及び構造化文書保存装置 |
US6263332B1 (en) * | 1998-08-14 | 2001-07-17 | Vignette Corporation | System and method for query processing of structured documents |
JP3965798B2 (ja) | 1998-09-08 | 2007-08-29 | 富士ゼロックス株式会社 | データ処理装置、文書処理装置、データ処理プログラムを記録したコンピュータ読み取り可能な記録媒体、文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体、データ処理方法、および文書処理方法 |
JP3651768B2 (ja) | 2000-05-18 | 2005-05-25 | 富士通株式会社 | 文書ファイル検索システム |
KR100358348B1 (ko) | 2000-06-01 | 2002-10-25 | (주) 아이티캠프 | 엑스엠엘 데이터의 효과적인 검색을 위한 다중 경로인덱스 방법 |
US20020004819A1 (en) * | 2000-07-10 | 2002-01-10 | David Agassy | Device and method for data interception and updating |
US20030018668A1 (en) * | 2001-07-20 | 2003-01-23 | International Business Machines Corporation | Enhanced transcoding of structured documents through use of annotation techniques |
US6999972B2 (en) * | 2001-09-08 | 2006-02-14 | Siemens Medical Systems Health Services Inc. | System for processing objects for storage in a document or other storage system |
-
2003
- 2003-08-20 JP JP2003296766A patent/JP4365162B2/ja not_active Expired - Fee Related
-
2004
- 2004-05-25 US US10/853,908 patent/US7457799B2/en not_active Expired - Fee Related
- 2004-06-01 EP EP04253257A patent/EP1508864A3/en not_active Ceased
- 2004-06-07 KR KR1020040041220A patent/KR100638695B1/ko not_active IP Right Cessation
- 2004-06-25 CN CN2004100483380A patent/CN1584884B/zh not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
JP特开2002-169815A 2002.06.14 |
Todd J.Green, Gerome Miklau, Makoto Onizuka, Dan Suciu.Processing XML Streams with Deterministic Automata.Technical Report, University of Washington.2001,第1-5页. * |
Also Published As
Publication number | Publication date |
---|---|
JP4365162B2 (ja) | 2009-11-18 |
US20050044070A1 (en) | 2005-02-24 |
EP1508864A3 (en) | 2006-06-14 |
CN1584884A (zh) | 2005-02-23 |
KR100638695B1 (ko) | 2006-10-30 |
US7457799B2 (en) | 2008-11-25 |
KR20050020927A (ko) | 2005-03-04 |
EP1508864A2 (en) | 2005-02-23 |
JP2005070911A (ja) | 2005-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1584884B (zh) | 检索结构化文档的数据的设备 | |
US6510425B1 (en) | Document search method for registering documents, generating a structure index with elements having position of occurrence in documents represented by meta-nodes | |
US6434551B1 (en) | Structured-text cataloging method, structured-text searching method, and portable medium used in the methods | |
CN110134671B (zh) | 一种面向溯源应用的区块链数据库数据管理系统及方法 | |
US7542968B2 (en) | Attribute data management system | |
CN102893281A (zh) | 信息搜索设备、信息搜索方法、计算机程序和数据结构 | |
US7831589B2 (en) | Method for retrieving constant values using regular expressions | |
JP2010520549A (ja) | データの記憶および管理の方法 | |
CN100407193C (zh) | 网络设备管理方法 | |
CN100538700C (zh) | 用于数据处理的方法和系统 | |
US20030110175A1 (en) | Deploying predefined data warehouse process models | |
CN101963993A (zh) | 一种数据库单表记录快速查找的方法 | |
CN111427845B (zh) | 一种交互式建模分析算子数据交换方法 | |
CN100452034C (zh) | 用于处理元数据的方法和设备 | |
US20060129515A1 (en) | Data totaling device, method thereof and storage medium | |
JP2004192657A (ja) | 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体 | |
JP5238105B2 (ja) | プログラム、及びデータ抽出方法 | |
JP2011008811A (ja) | プログラム、及びデータ抽出方法 | |
JP2000250930A (ja) | 構造化文書検索システム | |
US20040044686A1 (en) | Information object emulator | |
CN1625754A (zh) | 管理数据的传送、使用和输入的方法 | |
JPH11306198A (ja) | 検索データベース構築方法及び検索データ構築システム並びに記録媒体 | |
JP2000200206A (ja) | デ―タ管理装置およびデ―タ管理方法、並びに記録媒体 | |
JP2014199678A (ja) | 抽出制御プログラム、抽出制御方法、及び抽出制御装置 | |
Meyer | Efficient Processing of Very Large XML Documents in Small Space |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100721 Termination date: 20180625 |
|
CF01 | Termination of patent right due to non-payment of annual fee |