综合数据检索_第1页
综合数据检索_第2页
综合数据检索_第3页
综合数据检索_第4页
综合数据检索_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、结构化数据和非结构化数据综合检索技术黄金金1 王昭顺1 戴桂兰2 (1北京科技大学信息工程学院计算机系,100083 2清华大学信息技术研究院,100084 )摘要:本文提出了一种对结构化数据和非结构化数据综合检索的软件架构方案。解决了以往由于结构化数据和非结构化数据的性质差异很大,一直以来采用不同的检索方式进行分开的数据检索处理,对来自数据库的结构化数据一般采用SQL语句进行检索,而对非结构化数据则采取索引检索的方式。但无论采用哪种检索方式都会因无法兼顾到另外一种数据形式的检索而造成检索结果不全面、不完整的问题。关键词: 结构化数据检索 非结构化数据检索 查询语句适配器Abstract: A

2、 new kind of retrieval software architecture about structured data and Non-structured data was proposed in this paper. In the past, because of the great differences between them, we have to use different ways to deal with their data retrieval. We have been using SQL statements in the structured data

3、base search, and using index search in the non-structured data retrieval. But regardless of which search method was taken, it will bring the incomplete problem. Now the architecture resolve the problem.Keyword: structured data retrieval, Non-structured data retrieval, query sentences adapter引言数据类型大致

4、可分为两种:一种是可以用相同的层次结构来表示的数据即结构化数据,通常以数据表的形式存放在数据库中;另外一种是以Txt文本、Word文本、Pdf文本等形式存放在FTP中,无法用统一的结构来表示的非结构化数据。本系统的特点在于实现了对结构化数据和非结构化数据的综合检索,适用于异构数据同时存在的应用环境。系统为用户屏蔽了后端数据源的差异,只要输入关键词,就会自动对数据源中的数据进行检索,最终将经过加亮处理的结果展示在用户面前。本系统通过构建查询语句适配器的方法解决了数据库在sql语句的兼容性不够统一的问题,使得用户可以同时对多个不同数据库进行查询,无需在多数据库间转换查询语句。同时提出一种摘要生成算

5、法,对异构数据检索结果进行封装处理,解决了传统数据库查询通常简单返回相应字段的内容,用户无法对查询关键词进行准确定位的问题。本系统可以基于用户输入的关键词显示相应字段的内容,并对其进行准确定位,使用户能够迅速查看到有价值的信息。1 异构数据综合检索系统异构数据综合检索系统架构方案的一种思路是:建立统一索引文件,不论对来自结构化的数据还是来自非结构化的数据,索引工作都是在索引文件的基础上进行的。但统一建立索引会造成索引文件过于庞大,占用过多的硬盘空间,使系统看起来像一个笨重的数据仓库。并且索引文件更新不及时、检索结果实时性差等问题。本系统通过缓冲封装用户输入的查询条件,在未对结构化数据建立索引的

6、情况下实现了异构数据源中结构化数据和非结构化数据的综合检索。同时兼顾了检索数据的安全性和实时性要求。图 1综合检索系统总体构建方案图11 数据源连接层数据源连接层负责构建系统检索环境。对用户屏蔽后端差异,无论检索源是存放结构化数据的普通数据库还是存放非结构化文档的FTP,只要用户正确的提供连接信息,系统将自动连接上数据源。12 数据透明检索层数据透明检索层负责为结构化数据和非结构化数据提供统一、方便的检索入口,用户可以从模糊检索、精确检索、加减号限定检索、逻辑检索等方式中选择符合自己检索习惯的检索方式。检索层将对用户输入的检索信息进行规范(输入字符的编码转换、过滤非法字符、识别特殊符号的含义)

7、,如果为复杂查询输入,则进行查询逻辑处理,生成复合查询条件,连同用户选择的检索范围一同封装起来作为通用的检索输入。后端检索程序负责对系统封装的检索信息进行处理,启用多线程模式,由具体执行线程去分辨底层依赖的数据源信息。根据依赖数据源的不同,以并发的方式传递检索信息、向数据源发起访问。13 检索结果展示层系统提供了关键词自动定位加亮技术,不论检索结果来自结构数据还是非结构数据,最终检索结果将准确、快速的定位关键词在检索源中出现的位置并以加亮的方式呈现在用户面前。2 可扩展异构数据源连接异构数据源有两大类:(1)普通的数据库,(2)存放非结构文档的FTP。系统在检索数据时采用用户名和密码控制的数据

8、库直接连接方式,有效避免了由于建立索引文件而带来的检索数据和数据库中的数据不统一的问题,同时杜绝了非法用户通过索引文件来查看数据库中数据的现象。但又出于响应时间的要求,对来自FTP的非结构化数据检索,系统采取全文快照、建立索引文件的方式进行检索。系统在处理数据库连接和非结构文档检索上都采用了可扩展的结构。l 数据库在处理数据库类型方面,目前本系统虽然只支持主流的数据库,如oracle、sql server、mysql和access等,但对于其它数据库或其它不同版本的数据库只需要实现并提供相应的接口类并添加相应jdbc库,即可实现连接扩展。同时系统采取数据库连接池技术来管理数据库的连接操作以优化

9、系统性能、减少用户等待时间。l FTP在处理FTP连接方面,技术上采用sun公司提供的Ftp库,但研究的难点是如何对FTP中存在的多种非结构化文档类型建立索引文件。目前本系统只支持对word、txt、pdf类型的文档进行全文检索,但系统采用filter的架构方式,只需要根据文档后缀实现接口处理类,完成相应的配置即可对该类文档进行解析,并建立索引,从而实现对该类型文档的检索。这两种扩展能力决定了系统具有了一个高性能的搜索系统应该具备的易扩展特性。3 异构数据透明并发检索技术异构数据综合检索问题解决的关键点在于如何为用户提供统一的检索接口,使用户感觉不到结构化数据和非结构化数据之间的检索差异。系统

10、采用透明检索入口、并发底层处理的方式。3 1透明检索入口 透明检索入口的实现为用户输入进行统一封装处理,屏蔽了检索数据源的差异,用户只需明确自己的检索范围(由多个检索源组成)即可。当用户每增加一个新的检索范围(用户检索范围对于结构化文档而言精确到表、对于非结构化文档而言精确到索引域)时,系统将自动创建一个 SearchElement,并保存根据用户增加的检索源名称而从后台程序中获得的相应检索源连接信息和检索的具体表或域。最终多个SearchElement集合为一个SearchInput,并连同用户输入关键词一起封装为统一查询内容发往后台查询实现部分。3 2底层并发处理如果根据SearchEle

11、ment中封装的相应数据源信息依次的执行检索任务,那么所需的等待时间显然是用户无法忍受的。如何在最短的时间内同时对多个不同的数据源发起检索访问呢,系统后台程序中提供了对多线程检索技术的支持。但通常,对于一个数据源发出过多的并发查询请求会给服务端带来很大的压力,容易造成游标数超过上限等问题,而且对查询效率改善不大。此外在线程分配时应该在不同数据源间尽量均衡,以使用户尽快得到不同来源的数据。系统因此采用了基于优先级队列实现的线程调度算法。其中调度策略基于组实现,一个组对应于一个数据源。组间选择基于优先级策略,而组内选择则基于自然顺序。优先级基于两部分构成,一是组间优先级由当前组内是否有查询线程被调

12、度来决定,称作P1;二是执行优先级由组内未调用查询线程的检索任务数来决定,称作P2。P1与P2的和决定了该组的优先级,值越大优先级越高。每当组内有检索任务执行,该组的P1不变,P2减一,其它组的P1加一。当某个组内有查询返回时,该组的优先级数P1则再次提高,以保证每个数据源都有适当的访问压力。后台的具体线程会对检索输入条件中封装的相应数据源类型进行判断,在结构化数据和非结构化数据的检索处理上,系统底层程序会采用不同的方式进行。1) 结构化数据检索由于系统对来自数据库的结构化信息并未建立索引文件,而是基于sql语句实现检索操作的,但不同数据库都有自己的查询语句接口,SQL语句的不兼容性决定了要想

13、同时对多源数据库进行查询,就必须对不兼容的语句分别进行处理。本系统提出了查询语句适配器的概念,让不同数据库的查询语句处理都实现同一个查询接口类,当进行查询操作时,根据检索式中数据源配置信息获取相应的查询语句适配器,处理不同数据库的语法差异,从而可以获得相应数据库的字段转换子句、关键词查询语句、翻页语查询句和记录数查询语句等(因为数据库类型的不同,这些语句在不同的库中不能通用)。当增加新类型的数据库时,只需实现相应的查询语句处理类,即增加新的查询语句适配器,系统便可以提供对相应数据库的查询操作支持。增加新适配器的工作可以全部在程序外部的配置文件中进行,不必修改任何的程序代码,因此很好的实现了系统

14、的可扩展性。 图 2查询语句适配器构造图系统对所有类型数据库查询使用同样的查询接口,由查询语句构造工厂(QueryFactory)类,来决定当前的数据检索操作的后台数据库类型,进而调用相应得检索语句实现类来实现检索操作。2) 非结构化数据检索非结构化数据的检索是基于开源索引lunece构建起来的,主要分为索引器和查询器两部分。首先为FTP 文档建立自动增量索引库,企业FTP中的文档会随时增长或发生更改,相应的索引库也要发生反映出相应的变化,才能为用户查询提供及时准确的查询内容。为了应对庞大的内容给索引建立效率带来的挑战,系统能够定时探测到用户已有文档的更改或新加文档信息,自动重新建立索引。此外

15、,用户可以对索引选项进行配置,如索引建立的时间间隔,索引域信息(域名、分词处理、存储标识及权重)进行定义。自动增量索引库的建立分为调度器、下载器、解析器、索引器的建立四部分。调度器完成定时触发、暂停索引服务、读取配置信息(如新加入的FTP,新注入的文档解析器,新配置的索引域参数,和新触发器选项等内容)三项任务。下载器则根据FTP配置信息依次读取FTP目录内容,检查是否为支持文档类型,如是,则判断为新加文档或已更改文档,如是则将文档下载到本地临时文件夹。然后根据文档类型信息和配置文件内容获取相应的文档解析器,对文档内容进行解析,并返回相应的文本格式内容,亦可称为快照内容。最后索引器对文本内容进行

16、分词处理(系统采用基于字典的双向匹配中文分词方法),根据相应的索引域配置信息建立倒排索引文件,并启动索引服务,接受用户的索引请求。查询部分则反向进行,首先对用户输入进行分词,并根据用户指定的检索域向检索接口查询,其中检索接口基于Index Reader实现,能够依据一定的查询组合策略提供高效的查询。4 异构数据检索摘要生成算法由于检索结果来自不同的数据库和索引文件,本系统对异构数据源采取的完全不同的检索方式,所以系统的难点之一就在于如何将各数据源返回的检索结果按符合用户查询习惯的要求进行统一封装。本文提出了一种同时适应于结构数据和非结构数据的自动摘要生成算法。摘要生成算法基于以下目标:(1)高

17、亮显示用户所要查询关键词;(2)要显示多个摘要片断(excerpt);(3)显示关键词最为集中的片断集合。这样,用户能够直观看到自己最关注部分的摘要内容。基于以上目标,系统的摘要生成算法如下:高亮词处理。基于用户输入关键词生成,在滤除非组合查询词之后,对其余查询输入进行分词处理,这样保证用户在输入短句情况下也能得到提示。并得到高亮词的集合,其中代表第n个需要高亮显示的词汇。检索结果摘要生成流程图如下所示:图 3摘要生成流程图5 综合检索系统的性能测试1) 实验输入表 1 实验输入表数据库Oracle 9i 、Oracle 10g、SqlServer2000、Mysql5.0FTPSecondFTP检索数据北京2) 实验输出来自数据库的结构化数据检索结果显示: 图 4结构化数据简单检索结果图来自FTP的非结构化数据检索结果显示:图 5非结构化数据简单检索结果图3) 与其它搜索引擎比较:l 与网络搜索引擎对比:大家熟悉的搜索引擎百度,实质上是对网页上的信息作了索引,放在多个服务器上,它的缺点是更新速度慢。我们经常会遇到这样的情况:当得到一条检索结果时,想打开它,网页上却显示该页不存在。这就说明百度服务器上的索引库更新并不及时。l 与企业搜索引擎对比:大多数企业级的搜索引擎,只是针对企业内部使用的特定数据库。并不支持对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论