基于关键词的信息检索系统的研究
2012-12-29牛传明
中国集体经济 2012年4期
摘要:文章重点阐述了如何实现利用关键词查询的信息检索系统。系统根据关键词的属性分为文本查询和属性查询,在这两种查询模式中又细分为单表查询、匹配查询和遍历查询。文章最后对系统开发中所做工作进行了总结,并阐述了将来进一步对该系统进行扩充与完善的一些工作。
关键词:关系数据库;关键词查询;信息检索;Top-K查询
一、引言
搜索引擎并不真正搜索互联网,它搜索的是预先整理好的网页索引数据库。真正意义上的搜索引擎,通常指的是收集了互联网上几千万到几十亿个网页并对网页中的每一个文字(即关键词)进行索引,建立索引数据库的全文搜索引擎。
搜索引擎的原理,可以看作三步:从互联网上抓取网页→建立索引数据库→在索引数据库中搜索排序。
从互联网上抓取网页:利用能够从互联网上自动收集网页的Spider系统程序,自动访问互联网,并沿着任何网页中的所有URL爬到其他网页,重复这过程,并把爬过的所有网页收集回来。
建立索引数据库:由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息(包括URL、编码类型、包含的所有关键词、关键词位置、生成时间、大小、与其他网页的链接等),根据一定的相关度算法进行大量复杂计算,得到每一个关键词的相关度(或重要性),然后用这些相关信息建立网页索引数据库。
在索引数据库中搜索排序:用户输入关键词后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。相关度越高,排名越靠前。最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等组织起来返回给用户。
第一步是简单排名的首次尝试。第二步中提出了基于当前技术水平的IR评分函数的一个排名方法。最近,第三步对第二步中的方法有了更高层次的改善。
搜索引擎的Spider会定期重新访问所有网页(各搜索引擎的周期不同),更新网页索引数据库,增加新网页,去除死链接,并根据网页文字和链接关系的变化重新排序。这样,网页的具体文字变化情况就会反映到用户查询的结果中。文本文档和网页的关键词检索已经是成熟的研究领域。近年来,结构化和半结构化数据的关键词查询开始引起研究人员的兴趣。Oracle,DB2,SQLServer等关系数据库都提供了文本搜索扩展,这为实现关系数据库的关键词查询提供了一个基础。
二、系统总体设计
(一)系统分析
本系统是用来模拟某商场的货品查询系统。利用本系统,用户可以通过输入关键词查询自己想要的信息。查询的结果在返回前是经过排序的,与用户关键词最为符合的结果列在结果集的前面。系统支持文本关键词查询和数字关键词查询两种查询模式。在这两种查询模式下又细分为单表查询,匹配查询和遍历查询三种子查询模式。
1.单表查询。因为用户有时候会有很明确的查询目标,就是指定自己希望查询的表,该功能在用户指定的表中查询关键字。把查询到的与关键字匹配的元素返回给用户。
2.匹配查询。该查询方式是通过匹配表查询实现关键词的查询。当用户输入关键词后,系统会在匹配表中查询与该关键词相对应的表和表中的属性。这样使系统有明确的查询目标,大大提高了系统效率。
3.遍历查询。该查询模式是在用户递交的关键词既不符合单表查询又不符合匹配查询的时候,系统没有明确的查询目标。就遍历整个数据库中的所有表和所有属性,查询与关键词匹配的元素。
(二)系统设计
该商品系统是基于Internet的查询系统。系统是建立在B/S三层结构上,即Browser/WebServer/Database。
1.Browser(客户端)。只需使用标准的浏览器,不需安装其他程序,只需要打开网页递交所需查询的关键字就可以使用。
2.WebServer(www服务器提供者)。记录传进的关键词并将关键词递交给数据库,再从数据库中读取查询结果返回给用户。
3.Database(数据库)。存放相关的商品的信息。
网络系统平台模式大体上分为4种:主机终端模式、文件服务器模式、客户机/服务器模式(Client/Server,简称C/S)和Web浏览器/服务器模式(Browser/Server,简称B/S)。主机终端模式,已被逐步淘汰。而文件服务器模式只适用小规模的局域网,对于用户多、数据量大的情况就会产生网络瓶颈,在互联网上不能满足用户要求。对于远程系统来说,主要考虑C/S模式和B/S模式。C/S模式主要由客户应用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成。C/S模式的优点:交互性强、提供更安全的存取模式、降低网络通信量。由于C/S在逻辑结构上比B/S少一层,对于相同的任务,C/S完成的速度比B/S快,这就使得C/S模式更利于处理大量数据。
B/S模式是一种以Web技术为基础的新型的网络系统平台模式。把传统C/S模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器(Web服务器),从而构成一个三层结构的客户服务器体系。第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件。第二层Web服务器将启动相应的进程来响应客户的请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。第三层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的SQL请求,管理数据库。B/S模式的优点是简化了客户端、用户的操作更简单、适用于网上信息发布。
三、系统实现
(一)文本查询实现
1.单表查询。单表查询的原理就是用户输入要查询的商品表,然后系统会遍历表中所有的文本属性,接着在这些文本属性中寻找与用户递交的关键词相匹配的元素,最后返回到系统界面中。同时系统会对用户输入的关键词进行检测,如果该关键词在关系匹配表和属性匹配表中存在就会调用更新分数函数把关系匹配表和属性匹配表中的分数字段的值自动加“1”,如果在关系匹配表和属性匹配表中不存在的话,那么就会调用插入函数把该关键词作为新的关键词插入到关系匹配表和属性匹配表中,并且会赋予初始分数和系统的当前时间。
实现这个功能的主要有:查询指定表、结果集评分、插入新关键词以及返回有序结果集。
2.利用匹配表查询。匹配表查询的原理就是关键词已经与表和表中的属性一一对应起来,只要输入的关键词在关系匹配表和属性匹配表中存在那么系统就会通过关系匹配表找到关键词对应的表,然后再通过属性匹配表找到关键词在表中对应的属性,这样大大的提高了查询效率,所以从理论上来说这种查询方式的响应时间的平均值应该是最小的。实现这个功能的主要就是匹配关键词。
3.遍历数据库查询。遍历数据库查询的原理就是当用户没有选择商品类型,同时递交的关键词又不是关系匹配表和属性匹配表中“Keywords”这个字段的子集,那么出现这种情况系统就会遍历数据库所有表和表中的所有文本属性,所以这种查询模式的系统响应时间是最长的也是最耗费系统资源的。
实现这个功能主要就是匹配关键词和遍历整个数据库的属性。
(二)数字查询实现
此模块的作用就是满足用户对数据库中数字属性的查询。这个模块类似文本查询,分为单表查询和遍历查询两种查询模式,没有了文本查询中的匹配查询。
1.数字查询的单表查询。在用户指定的表中,查询用户输入的数字范围,并且把结果返回给用户。
2.遍历查询。在用户没有指定表而输入了查询条件,那么系统就会遍历这个表查询是否存在与用户输入的查询范围相符合的元素。
这个功能的主要就是通过匹配数字关键字和遍历整个数据库的数字属性来实现。
(三)系统流程
流程上介绍了系统的运行方式。首先系统判断用户输入的关键词是文本属性还是数字属性,再判定用户的查询方式是单表查询还是非单表查询,如果是非单表查询再判断是匹配查询还是遍历查询,如果存在所要查询的关键字那么把排序好的结果集返回给用户,不存在的话就返回个空集给用户,告诉用户输入的关键词在数据库中没有找到匹配项。
四、结束语
关键词查询是当今互联网上使用最为广泛的数据库查询技术之一。它以其友好的查询界面,和与人们自然语言相接近,并且是十分高效赢得了用户们的肯定。比如,现今被最为推崇的搜索引擎Google它就是基于关键词查询。
本文详细论述了一个基于关键词查询的商品检索系统。通过对系统的结构和功能的分析了解系统的主要功能是完成用户输入的关键词在数据库中的查询工作,返回一个有序的结果集。
系统根据递交的关键词的属性分为了文本查询和数字查询两种,每一种都有不同的评分标准和相关算法,在这两种模式下又分为单表查询,匹配查询和遍历查询这三种子模式。
以上几种查询方式是符合用户使用系统的习惯,最大可能满足用户不同的查询方式。系统是经过严格的编码和多次的测试的,结果集的产生是准确的,符合用户递交的关键字同时系统还会显示系统响应时间反映了系统执行这次查询的效率,让用户对自己这次关键词查询在时间花费上有定量的认识。
当然,如果能整合数据库检索系统,信息检索系统和XML检索系统,不管采用怎样的方式,关键词提交搜索仍是用户与系统之间最重要的接口。继续深入探讨以各种方式存储在数据库中的信息并返回相关信息成为以后工作中的重点。
参考文献:
1.王云.关系数据库的索引技术[J].计算机与信