2003-03-17 10:14
全文检索技术的深层剖析
肖诗斌
将文章中所有的文字序列都作为检索对象,找出包含有欲检索词汇的文章,这就是全文检索。全文检索技术根据使用领域分为两类:互联网搜索引擎和企业内容检索系统。两者使用的核心技术都是全文检索,但侧重点有所不同。
全文检索技术的两大类别
互联网搜索引擎面向的是Internet上大量的杂乱无章的网页,主要目的是找到一些有用的参考信息和屏蔽一些有害信息,尽量把有用的网页排在前面。关于有用性,有各种度量方法,比如根据pagelink网页链接的多少作为网页重要性的依据,或者根据出钱的多少决定网页重要性的竞价系统。前者代表性的系统有Google,后者代表性的系统有百度。互联网搜索引擎的共同特点是不追求企业应用要求的高度查全率和高度查准率。另外,由于数据量巨大,后台索引和检索数据库需要强大的硬件服务器群支持几百上千台服务器,甚至上万台,以及好的体系结构设计和适合全文检索系统运行的硬件服务器选型。这也是为什么成功的互联网搜索引擎都是以ASP方式提供服务,以及为什么互联网搜索引擎厂家的全文检索系统应用到企业中往往以失败告终。其原因殊不知互联网搜索引擎的强大功能是由后台强大的硬件服务器群和适合的体系结构支撑的,而不是因为它本身的技术好。再者,企业应用要求的高度查全率和高度查准率,以及信息更新的实时性,它很难做到。
企业内容检索系统要求查询结果具备高度查全率和高度查准率,以及信息更新的实时性。企业信息相对而言是经过整理的有用信息。在高度查准率的同时要求高度查全率。高度查准率的目的是让用户节省时间早点找到有用信息;高度查全率是为了全面分析情报而不错过商机。也因为这个原因,互联网搜索引擎为了提高查询速度普遍采用的估算技术在企业应用中很难派上用场。不是在所有的服务器里检索信息,只是在相应的一些服务器里检索信息,然后在返回首批检索结果时根据经验估算总的检索命中数。企业收集到情报后希望它的使用者马上能够检索到它,而不是还要经过一个长时间的延迟。
互联网搜索引擎和企业内容检索系统的不同点还有:互联网搜索引擎系统的信息来源于文件系统的HTML文件,包括一些动态网页。而企业内容里检索系统的信息除了是存储在文件系统的HTML文件外,还包括存储在各种关系数据库里的大量信息,甚至是直接存储在全文检索系统里的信息。这就要求企业内容检索系统与关系数据库有很好的接口也要求企业内容检索系统本身能像关系数据库管理系统一样管理各种数据。由于互联网搜索引擎系统的这些缺陷,它很难成功地应用到企业里。
全文检索系统面面观
全文检索系统要将文章中所有的文字序列都进行索引,以便找出包含有欲检索词汇的文章。全文检索系统首先将要检索的内容分割成较短的文字序列, 然后生成每个文字序列中所包含字符串的索引。当输入检索语句后,也同样进行分割,与索引进行比较。也就是说,两者即使包含有同样的文字排列,但分割方法不同的话也不能正确检索。文字序列的分割方法主要有两种: 词素解析与N-gram。词素解析是指对文字序列按词典意义上的最小单位进行分解处理。与此相对的N-gram则不考虑文字的意义,只按一定的长度单位N来分割文章。按词素解析法进行文字分割后,可根据有意义的单词进行检索。对于只有部分文字一致但没有意义的文字序列就排除在外,因而减少了检索干扰。但它会出现词典中没有的单词时就不能进行正确分割的现象。所以有发生检索遗漏的可能性。相反,如果采用N-gram的话,不会出现检索遗漏的情况,但增加了检索干扰。两者各有优缺点, 一般使用其中的一种, 但使用词素解析的较多。
TRS全文检索系统属于企业内容检索系统类别,追求查询结果的高度查全率和高度查准率,以及信息更新的实时性,以满足企业用户的要求。同时TRS全文检索系统和各种关系数据库管理系统有无缝的接口,以便对存储在各种关系数据库里的信息进行索引和检索。至于检索速度方面,根据企业用户的特点,TRS不使用互联网搜索引擎普遍采用的为了提高查询速度而采用的估算技术,而是采用自己独创的技术:高效索引压缩技术、索引跳跃式扫描技术、并行检索技术、Query-CACHE技术、基于词以及词频的bi-gram算法、自动分库技术。在智能检索效果方面, TRS开发了基于同义词典和主题词典的扩展检索,不过要体现出智能检索效果,在项目实施时需要用户整理出这些词典。TRS按字检索能满足100%查全的需要,并且有它的用处。因为按词检索(词素解析)无论做得多好,理论上就不可能100%查全。TRS按词检索对应于“词素解析”, 不过TRS为了不至于检索遗漏,而把词典中不存在的词也以某种方式切割出来,同时在词级根据词频做了bi-gram。但按词检索对应的词切割不可能达到100%正确,所以存在因分词错误导致的检索遗漏。TRS分词系统在追求切分正确率的同时,增加了冗余切分, 目的是达到高度查全率和高度查准率。
本文原载于中国计算机报