一种全文检索文档数据库的方法及装置的制作方法

文档序号:6603899阅读:149来源:国知局
专利名称:一种全文检索文档数据库的方法及装置的制作方法
技术领域
本发明涉及检索技术,特别涉及一种全文检索文档数据库的方法及装置。
背景技术
当前运营商在信息化支撑领域的发展方向是以企业用户为中心,加强组织、流程、 人员的协作。其中,办公自动化系统(OA,Office Automation)、知识管理系统作为企业信息化的不可或缺核心系统,其中涉及的知识文档、公文文档一般采用文档数据库进行管理并提供搜索引擎,用户可以通过输入关键字词的方式进行检索获取需要的文档信息。文档数据库属于数据库范畴,可以共享相同的数据,具有数据的物理独立性和逻辑独立性,数据和程序分离,允许创建许多不同类型的非结构化的或任意格式的字段,提供非结构化数据处理,不提供对参数完整性和分布事务的支持,关于文档数据库的其它相关内容,可参见相关的技术文献,在此不再赘述。文档数据库的产品,例如,Lotus Domino/Notes,目前应用十分广泛,企业能够充分利用文档数据库集成的开发环境的优势,即文档数据库的文档和表单驱动的应用开发模式,可以有效地缩短开发周期。由于在文档数据库中,可以任意为记录添加字段,可以添加列表型的字段,可以处理富文本格式(RTF,Rich Text Format)域、附件这样的大对象。因而,提供了灵活的数据处理方式。文档数据库以文档(文件)的形式存储特定的业务数据的内容,因而,在使用过程中存在的最大问题就是面对海量的知识文档和办公自动化系统附件,如何能够帮助用户尽快定位其需要的知识和办公自动化系统附件。现有技术中一般通过文档数据库自身提供的全文检索去查询文档数据库中的文档,这样,在文档数量较大时,全文检索往往会得到一个较大的结果集,用户面对的还是一个海量的数据结果,无法满足用户的查询要求。具体来说,首先,全文检索查询效率低,例如在工作流自动化应用方面,随着公文文档数量增加,文档数据库容量日益增大,由于数据库容量的增长,文档数据库对数据处理的能力大大降低, 尤其在数据查询检索方面,使得查询检索所需时间大大增加、查询效率显著下降。其次,查询结果不精确,由于文档数据库内嵌的搜索引擎对全文检索支持较差,例如,文档中可能包含不同格式的附件,举例来说,一个文档中可以包含WORD附件、PDF附件等,因此,在进行全文检索时,需要文档数据库提供针对不同格式的附件的解析器以便进行检索并读取附件中的内容,而文档数据库内嵌的搜索引擎不具有解析器,因而,在文档中存在不同格式的附件时,可能导致用户无法查找到需要的文档或返回一个完全不相关的文档集合。

发明内容
有鉴于此,本发明的主要目的在于提出一种全文检索文档数据库的方法,提高全文检索的查询效率。本发明的另一目的在于提出一种全文检索文档数据库的装置,提高全文检索的查询效率。为达到上述目的,本发明提供了一种全文检索文档数据库的方法,该方法包括查询文档中的附件并对查询得到的附件按照预先设置的策略进行文档转换;按照业务分类文档数据库中的文档,生成文档数据子库;为生成的文档数据子库建立全文索引目录,并存储在预先设置的关系数据库中;接收用户输入的搜索关键字词,匹配关系数据库中的全文索引目录,获取匹配的全文索引目录对应的文档数据库中的文档。进行文档转换后的文档结构为可扩展标记语言文档结构。所述接收用户输入的搜索关键字词,匹配关系数据库中的全文索引目录,获取匹配的全文索引目录对应的文档具体包括数据库中的文档文档数据库中的搜索程序接收用户输入的搜索关键字词,根据搜索关键字词搜索关系数据库中的全文索引目录,查找与搜索关键字词匹配的全文索引目录,然后根据查找得到的全文索引目录,定位该全文索引目录对应的文档数据库中的文档,并将得到的文档信息返回给搜索用户。在所述接收用户输入的搜索关键字词的步骤之后,匹配关系数据库中的全文索引目录的步骤之前,进一步包括对用户输入的搜索关键字词进行分词处理。在所述匹配关系数据库中的全文索引目录的步骤之后,获取匹配的全文索引目录对应的文档数据库中的文档的步骤之前,进一步包括将匹配的全文索引目录信息作为初次搜索结果信息向用户显示,根据用户从初次搜索结果信息中选择的全文索引目录信息, 执行所述获取匹配的全文索引目录对应的文档数据库中的文档的步骤。进一步包括判断文档修改日志是否发生变化,如果是,读取文档修改日志,并与全文索引目录中的索引进行对比,获取需要同步的文档数据,修改索引中的相应数据。所述判断文档修改日志是否发生变化,如果是,读取文档修改日志,并与全文索引目录中的索引进行对比,获取需要同步的文档数据,修改索引中的相应数据具体包括在检测到文档数据库中的文档被修改时,触发索引程序,索引程序读取文档的修改日志,并与全文索引目录中的索引进行对比,发现该文档的数据发生了变化,确认需要同步修改索引中的相关数据,启用索引同步程序对该文档的索引进行更新。一种全文检索文档数据库的装置,该装置包括文档数据库模块、文档转换模块、 关系数据库模块以及搜索引擎模块,其中,文档数据库模块,用于按照业务分类文档数据库中的文档,生成文档数据子库;文档转换模块,用于查询文档数据子库文档中的附件并对查询得到的附件进行文档转换;关系数据库模块,用于为生成的文档数据子库建立全文索引目录;搜索引擎模块,用于接收用户输入的搜索关键字词,匹配关系数据库模块中的全文索引目录,获取匹配的全文索引目录,从文档数据库模块中获取匹配的全文索引目录对应的文档。进一步包括分词模块,用于接收用户输入的搜索关键字词,根据预先设定的规则判断是否对搜索关键字词进行分词,如果是,将分词后的搜索关键字词输入搜索引擎模块,否则,直接将搜索关键字词输入搜索引擎模块。
所述文档数据库模块进一步用于存储文档修改日志,所述装置进一步包括全文索引目录更新模块,用于判断文档数据库模块中的文档修改日志是否发生变化,如果是,读取文档修改日志,并与关系数据库模块中全文索引目录中的索引进行对比, 获取需要同步的文档数据,修改索引中的相应数据。由上述的技术方案可见,本发明提供的一种全文检索文档数据库的方法及装置, 查询文档中的附件并对查询得到的附件按照预先设置的策略进行文档转换;按照业务分类文档数据库中的文档,生成文档数据子库;为生成的文档数据子库建立全文索引目录,并存储在预先设置的关系数据库中;接收用户输入的搜索关键字词,匹配关系数据库中的全文索引目录,获取匹配的全文索引目录对应的文档数据库中的文档。这样,通过对文档数据库建立分布式的索引目录,并通过文档转换技术实现不同类型文档附件的全文索引,可以提高全文检索的查询效率以及查询结果的精确度。


图1为本发明实施例全文检索文档数据库的方法流程示意图。图2为本发明实施例进行文档转换以及生成全文索引的示意图。图3为本发明实施例通过增量索引机制进行全文检索的方法流程示意图。图4为本发明实施例全文检索文档数据库的装置结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。现有技术中,文档数据库以文档的形式存储特定的业务数据的内容,其基于业务数据的内容与用户输入的搜索关键字词进行匹配,使得查询效率低,因而,本发明实施例中,考虑引入高度结构化的关系数据库,并通过文档转换技术实现不同类型文档附件的全文索引,用以提供对参数完整性和分布事务的支持,对文档数据库中的文档(包括文档转换后的文档附件)建立分布式的索引目录,这样,关系数据库根据用户输入的搜索关键字词匹配分布式的索引目录,根据匹配的索引获取文档数据库中的相应文档。图1为本发明实施例全文检索文档数据库的方法流程示意图。参见图1,该流程包含步骤101,查询文档中的附件并对查询得到的附件按照预先设置的策略进行文档转换;本步骤中,要提供文档数据库的全文搜索,不仅仅需要索引文档中的字段,还需要对文档中的附件进行全文索引。预先设置的策略可以是设置文档转换器,对文档数据库中的文档进行查询,如果文档中存在附件,则利用设置的文档转换器将文档中的附件进行文档转换。实际应用中,可扩展标记语言(XML,Extensible Markup Language)文档结构是全文检索都支持的一种文档结构,因而,本实施例中,将文档中不同的附件,例如,有网页附件、Word附件、Excel附件、Pdf附件等通过文档转换器转换为XML文档,关于文档转换的处理,为现有技术,具体可参见相关技术文献,在此不再赘述。
步骤102,按照业务分类文档数据库中的文档,生成文档数据子库;本步骤中,为了提高全文检索的效率,对现有文档数据库中的文档按照业务进行分类,形成文档数据子库,以使后续检索时仅针对该分类的业务对应的文档数据子库进行检索,减少对其它文档数据子库的检索,以节约检索时间并提高检索效率。步骤103,为生成的文档数据子库建立全文索引目录,并存储在预先设置的关系数据库中;本步骤中,按照文档数据子库的存储结构,建立全文索引目录,为每一个文档数据子库建立对应的一个全文索引目录,这些全文索引目录存储在关系数据库中,形成分布式全文索引目录。文档数据子库的存储结构与现有文档数据库的存储结构相同,根据存储结构建立全文索引目录也属于现有技术,具体可参见相关技术文献,在此不再赘述。图2为本发明实施例进行文档转换以及生成全文索引的示意图。参见图2,文档型数据库文档中的不同格式、不同类型的附件经过文档(文件)转换后形成统一的XML格式文档,再按照存储结构,建立全文索引。步骤104,接收用户输入的搜索关键字词,匹配关系数据库中的全文索引目录,获取匹配的全文索引目录对应的文档数据库中的文档。本步骤中,文档数据库中的搜索程序接收用户输入的搜索关键字词,根据搜索关键字词搜索关系数据库中的全文索引目录,查找与搜索关键字词匹配的全文索引目录,然后根据查找得到的全文索引目录,定位该全文索引目录对应的文档数据库中的文档,并将得到的文档信息返回给搜索用户。实际应用中,还可以对用户输入的搜索关键字词进行分词,采用分词索引技术对文档进行全文检索以提高效率。例如,在索引文档数据的时候,根据预先设定的文档数据库的数据字段“索引字段配置”来进行数据索引,在建立索引的时候,只索引这些设定的数据字段,以准确地抓取这些需要索引的数据。并在索引字段的时候采用中文分词技术,根据 “分词字段配置”对索引数据进行中文分词。这样,在索引文档数据库的时候,可以根据不同的需求,按需设定文档数据库中数据字段的索引方式,而不是对文档数据库实施全部数据的全量索引,在满足搜索需要的情况下,可以大大的提高索引的查询效率;进一步地,在索引字段的时候采用中文分词技术,可以按需设定索引字段是否进行中文分词,例如,设置文档标题字段采用中文分词的索引,日期字段则不需要进行分词的索引,可以极大的提高搜索的准确性,使得用户可以准确地搜索到想要的信息。本实施例中,在匹配关系数据库中的全文索引目录的步骤之后,获取匹配的全文索引目录对应的文档数据库中的文档的步骤之前,还可以将匹配的全文索引目录信息作为初次搜索结果信息向用户显示,根据用户从初次搜索结果信息中选择的全文索引目录信息,从文档数据库中获取该全文索引目录对应的文档,并将该文档信息返回给用户。至此,该全文检索文档数据库的方法流程结束。由上述可见,本发明实施例利用关系型数据库达到关键字词与全文索引目录的结合,可以有效提高查询效率,文档数据库中存储的是业务数据的实体,而不存储业务数据的索引,关系型数据库存储业务数据的索引。而且,通过这种方式维护分布式的全文索引目录,可以提供高度的灵活性,完全适应文档数据库分库结构的实时变化,不会因为系统目录结构中个别文档数据子库的变化,导致重建所有的索引文件或全文索引目录。实际应用中,如上所述,文档数据库分库结构可能是实时变化的,也就是文档数据库中的文档数据子库是实时变化的,如果不能实时地对关系型数据库中存储的全文索引目录进行动态更新,将可能导致搜索效率的降低以及搜索准确性的下降,为此,本发明实施例提出根据文档修改痕迹来触发增量索引机制以完成索引与文档的同步。描述如下由于文档数据库中的文档存储的是特定的业务数据的内容,关系型数据库存储的是业务数据的全文索引,通过建立文档数据子库或文档的全文索引,可快速访问文档数据库中的特定文档。因此,文档数据库中的文档一旦被修改,就需要立即更新其在关系型数据库中全文索引目录中的对应的索引。而实际应用中,文档数据库中的文档在每次被修改的时候,都会生成文档修改日志,基于上述考虑,可以通过文档修改日志触发增量索引机制以完成索引与文档的同步判断文档修改日志是否发生变化,如果是,读取文档修改日志,并与全文索引目录中的索引进行对比,获取需要同步的文档数据,修改索引中的相应数据。实际应用中,可以根据实际需要来判断文档修改日志是否发生变化,例如,当文档内容或大小等变化超过预先设定的阈值时,可以认为文档修改日志发生了变化,当然,也可以以文档内容或大小的相对变化来作为判断的依据,其具体值可根据实际需要来确定。本实施例中,可以通过触发索引程序来读取文档修改日志。在检测到文档数据库中的文档被修改时(文档修改日志发生变化),触发索引程序,索引程序读取文档的修改日志,并与全文索引目录中的索引进行对比,发现该文档的数据发生了变化,确认需要同步修改索引中的相关数据,启用索引同步程序对该文档的索引进行更新。这样,提高了增量索引的实时性;同时,根据文档修改日志自动触发单个文档的增量索引,使得文档数据库在关系数据库中的索引的同步得到最大的实时性;进一步地,只同步特定文档中有被修改的特定数据字段,保持了文档数据库的稳定,减少了对同步资源的开销;而且,在完成一个文档的同步后,可以立即更新该文档的最后同步时间戳,以有效防止数据同步的重复性,在保证最大索引效率的情况下,得到最好的数据实时性。本发明实施例中,将这种自动触发单个文档的索引称为增量索引。图3为本发明实施例通过增量索引机制进行全文检索的方法流程示意图。参见图 3,包括如下六个步骤步骤1,当文档数据库(文档型数据库)中的文档被修改时,主动触发索引程序,索引程序读取文档的修改日志,并与全文索引目录中的索引进行对比,发现该文档的数据发生了变化,确定需要同步的修改索引中的相关数据,立即启用索引同步程序对该文档的索引进行更新。步骤2,在索引文档数据的时候,根据设定的文档数据库的数据字段“索引字段配置”来进行数据索引,在建立索引的时候,只索引这些设定的数据字段,准确的抓取这些需要索引的数据。并在索引字段的时候采用中文分词技术,根据“分词字段配置”对索引数据进行中文分词。步骤3,采用文档转换器,针对文档中不同的附件类型,提供不同的转换适配器,将不同格式、类型的附件转换成相应的XML文档结构,以便后续对其内容进行全文索引。步骤4,更新索引目录中的索引文件。步骤5,搜索程序接收用户的输入的搜索条件,搜索关系型数据库(关系数据库)中的索引目录,快速查找到符合搜索条件的文档集合,并将这个文档集合作为搜索结果返回给用户。步骤6,用户在搜索结果中选择需要查看的文档,这个查看文档的请求将直接转发给文档数据库,由文档数据库将文档的内容展现给用户。综上,本发明实施例提出的全文检索文档数据库的方法,采用智能化的分词索引方式,对文档数据库建立分布式的索引目录,并通过文档转换技术实现不同类型文档附件的全文索引;通过文档修改日志触发增量索引机制,建立文档数据库中的索引。通过采用这些优化的算法和分析方法,提供了精确的数据查找,提高了文档数据库的搜索查询效率。有效地改善了文档数据库在查询检索方面的缺陷与不足,表现在保证索引效率的同时,大大降低了文档数据库压力由于文档数据库,例如,Lotus Domino/Notes通常采用全量的索引方法,所以文本型在建立索引时,服务器响应能力降低非常明显,本发明实施例采用了智能化的分词索引技术,适用于不同的文本数据结构,按需完成文本数据的增量索引,准确地抓取需要索引的字段,而不是所有的字段,这样,在满足搜索需要的情况下,大大的提高索引的效率;并且采用触发式增量索引机制,根据文档修改日志实时同步,有效降低大批量数据同步给文档数据库带来的压力。应用智能化的分词索引技术,保证查询结果的精确在索引字段的时候采用中文分词技术,可以按需设定索引字段是否进行中文分词;采用文档转换器,针对不同的附件类型,提供不同的转换适配器,将不同格式、类型的附件转换成相应的结构,可以对其内容进行全文索引,非常灵活地适应于各种应用。通过这种优化的索引方法,提高了查询结果的精确度。采用分布和并行计算缩短查询时间针对企业信息的快速增长,信息系统会随着文档数目的增多性能逐渐下降,本发明实施例中,建立的是分布式的全文索引目录,索引程序可以并行处理多个文档数据库的索引同步,同时对多个文档数据库建立索引,可以快速和方便地集成分布索引和并行计算,提高了访问性能。图4为本发明实施例全文检索文档数据库的装置结构示意图。参见图4,该装置包括文档数据库模块、文档转换模块、关系数据库模块、搜索引擎模块,其中,文档数据库模块,用于按照业务分类文档数据库中的文档,生成文档数据子库;文档转换模块,用于查询文档数据子库文档中的附件并对查询得到的附件进行文档转换;关系数据库模块,用于为生成的文档数据子库建立全文索引目录;搜索引擎模块,用于接收用户输入的搜索关键字词,匹配关系数据库模块中的全文索引目录,获取匹配的全文索引目录,从文档数据库模块中获取匹配的全文索引目录对应的文档。较佳地,该装置还包括分词模块,用于接收用户输入的搜索关键字词,根据预先设定的规则判断是否对搜索关键字词进行分词,如果是,将分词后的搜索关键字词输入搜索弓I擎模块,否则,直接将搜索关键字词输入搜索弓I擎模块。较佳地,文档数据库模块中还存储有文档修改日志,该装置还包括全文索引目录更新模块,用于判断文档数据库模块中的文档修改日志是否发生变化,如果是,读取文档修改日志,并与关系数据库模块中全文索引目录中的索引进行对比,获取需要同步的文档数据,修改索引中的相应数据。 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种全文检索文档数据库的方法,其特征在于,该方法包括查询文档中的附件并对查询得到的附件按照预先设置的策略进行文档转换;按照业务分类文档数据库中的文档,生成文档数据子库;为生成的文档数据子库建立全文索引目录,并存储在预先设置的关系数据库中;接收用户输入的搜索关键字词,匹配关系数据库中的全文索引目录,获取匹配的全文索引目录对应的文档数据库中的文档。
2.如权利要求1所述的方法,其特征在于,进行文档转换后的文档结构为可扩展标记语言文档结构。
3.如权利要求2所述的方法,其特征在于,所述接收用户输入的搜索关键字词,匹配关系数据库中的全文索引目录,获取匹配的全文索引目录对应的文档具体包括数据库中的文档文档数据库中的搜索程序接收用户输入的搜索关键字词,根据搜索关键字词搜索关系数据库中的全文索引目录,查找与搜索关键字词匹配的全文索引目录,然后根据查找得到的全文索引目录,定位该全文索引目录对应的文档数据库中的文档,并将得到的文档信息返回给搜索用户。
4.如权利要求1至3任一项所述的方法,其特征在于,在所述接收用户输入的搜索关键字词的步骤之后,匹配关系数据库中的全文索引目录的步骤之前,进一步包括对用户输入的搜索关键字词进行分词处理。
5.如权利要求4所述的方法,其特征在于,在所述匹配关系数据库中的全文索引目录的步骤之后,获取匹配的全文索引目录对应的文档数据库中的文档的步骤之前,进一步包括将匹配的全文索引目录信息作为初次搜索结果信息向用户显示,根据用户从初次搜索结果信息中选择的全文索引目录信息,执行所述获取匹配的全文索引目录对应的文档数据库中的文档的步骤。
6.如权利要求5所述的方法,其特征在于,进一步包括判断文档修改日志是否发生变化,如果是,读取文档修改日志,并与全文索引目录中的索引进行对比,获取需要同步的文档数据,修改索引中的相应数据。
7.如权利要求6所述的方法,其特征在于,所述判断文档修改日志是否发生变化,如果是,读取文档修改日志,并与全文索引目录中的索引进行对比,获取需要同步的文档数据, 修改索引中的相应数据具体包括在检测到文档数据库中的文档被修改时,触发索引程序,索引程序读取文档的修改日志,并与全文索引目录中的索引进行对比,发现该文档的数据发生了变化,确认需要同步修改索引中的相关数据,启用索引同步程序对该文档的索引进行更新。
8.—种全文检索文档数据库的装置,其特征在于,该装置包括文档数据库模块、文档转换模块、关系数据库模块以及搜索引擎模块,其中,文档数据库模块,用于按照业务分类文档数据库中的文档,生成文档数据子库;文档转换模块,用于查询文档数据子库文档中的附件并对查询得到的附件进行文档转换;关系数据库模块,用于为生成的文档数据子库建立全文索引目录;搜索引擎模块,用于接收用户输入的搜索关键字词,匹配关系数据库模块中的全文索引目录,获取匹配的全文索引目录,从文档数据库模块中获取匹配的全文索引目录对应的文档。
9.如权利要求8所述的装置,其特征在于,进一步包括分词模块,用于接收用户输入的搜索关键字词,根据预先设定的规则判断是否对搜索关键字词进行分词,如果是,将分词后的搜索关键字词输入搜索引擎模块,否则,直接将搜索关键字词输入搜索引擎模块。
10.如权利要求8或9所述的装置,其特征在于,所述文档数据库模块进一步用于存储文档修改日志,所述装置进一步包括全文索引目录更新模块,用于判断文档数据库模块中的文档修改日志是否发生变化, 如果是,读取文档修改日志,并与关系数据库模块中全文索引目录中的索引进行对比,获取需要同步的文档数据,修改索引中的相应数据。
全文摘要
本发明公开了一种全文检索文档数据库的方法及装置,包括查询文档中的附件并对查询得到的附件按照预先设置的策略进行文档转换;按照业务分类文档数据库中的文档,生成文档数据子库;为生成的文档数据子库建立全文索引目录,并存储在预先设置的关系数据库中;接收用户输入的搜索关键字词,匹配关系数据库中的全文索引目录,获取匹配的全文索引目录对应的文档数据库中的文档。应用本发明,可以提高全文检索的查询效率。
文档编号G06F17/30GK102262640SQ201010195408
公开日2011年11月30日 申请日期2010年5月31日 优先权日2010年5月31日
发明者吴青发, 徐锐, 陈旭毅 申请人:中国移动通信集团贵州有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1