一种用于数据检索的搜索系统和方法及其在搜索引擎中的应用的制作方法

文档序号:6419133阅读:185来源:国知局
专利名称:一种用于数据检索的搜索系统和方法及其在搜索引擎中的应用的制作方法
技术领域
本发明涉及一种用于信息(特别是以正文T的形式存储的信息)检索的搜索系统,其中,信息检索以查询Q与被检索信息R之间的给定或不同程度的匹配而发生,其中搜索系统包含一个用于存储正文(T)的数据结构,一个测量查询Q与被检索信息R之间匹配程度的尺度M和一个用于执行搜索-特别是根据关键字的全文搜索的搜索算法;本发明还涉及该信息(特别是以正文T的形式存储的信息)检索的搜索系统中的一种方法,其中将正文T划分成单词和单词序列,单词是符号的序列,其中每个单词被构造为一个或多个后缀,后缀是构成序列的单词中的符号的子集;本发明还涉及该搜索系统的使用。
人类知识的各个领域中的巨量信息被收集和存储在计算机存储系统中。随着计算机存储系统越来越多地连接到公共的数据通信网络,人们越来越努力地开发搜索和检索信息的系统和方法供公众或个人使用。然而,目前的数据搜索方法还有局限,这些局限严重降低了有效检索和使用以这种方式存储的信息的可能性。
信息能以不同数据类型的形式存储,在信息搜索和检索的意义上,区别动态数据和静态数据是有用的。动态数据是经常不断改变的数据,因此有效数据的集合总是在变化;而静态数据则不大改变,或者根本不变。例如,诸如股票值的经济数据或气象数据的变化很快,所以是动态的。另一方面,档案式存储的书籍和文献一般是永久性的,所以是静态的。数据易失性的概念涉及信息在多长时间里有效。数据易失性对应当如何搜索和检索信息有一定影响。大量的数据要求有便于搜索的某种结构,但是建立这种结构的时间成本决不能高于数据有效的时间。建立一个结构的成本取决于数据量,因此为检索信息而建立数据结构时应当考虑数据量和易失性两个方面。所收集的信息被存储在数据库中,这些数据库可能是结构化的,也可能是非结构化的。此外,数据库可能含有数种类型的文件,包括含有图象、影像、声音和格式化或带注释正文的复合文件。特别结构化的数据库通常具有便于搜索和检索数据的索引。万维网(WWW)的成长提供了稳定增长的复合文件和超链接文件的收集。这些文件许多都没有收集在结构化数据库中,没有便于快速搜索的索引。然而,对搜索万维网中的文件的需求是显而易见的,由于已经开发了许多所谓的搜索引擎,至少能搜索万维网中信息的一部分。
搜索引擎一般被理解为用于搜索和检索信息的一个或多个工具。除了适当的搜索系统,搜索引擎也含有一个例如包含来自大量统一资源定位器(URL)的正文的索引。这种搜索引擎的例子是Alta Vista、Inktomy技术公司的Hotbot、Infoseek、Excite和Yahoo。所有这些搜索引擎都提供在万维网中进行信息的搜索和检索的便利条件。然而,它们的速度和效率确实与万维网上提供的海量信息不般配,所以这些搜索引擎的搜索和检索效率有很大的改进空间。
搜索大量的正文文件一般能用几个查询类型(query type)完成。最普通的查询类型是对比(matching)和对比的变异(variants)。搜索系统通过指定必须在被查询信息中出现的一个关键字或关键字集合,检索满足这个要求的所有文件。基本搜索方法根据的是所谓的单关键字对比。检索关键字p,将含有该字的所有文件检索出来。也可能搜索关键字前缀p,将文件中任何关键字中出现这个前缀的所有文件检索出来。与关键字搜索不同的是,有时搜索根据的是所谓的精确短语对比,其中,搜索使用特定顺序的几个单关键字。正如本领域的熟练人员熟知的那样,在许多搜索系统中,关键字短语的精确对比可以用布尔运算符来执行,例如根据诸如AND、OR、NOT,它们能筛选信息,即,如果使用AND短语,则返回所有含有由AND运算符连接的两个关键字的所有文件。也用过NEAR运算符,以返回只有在文件正文中有关键字匹配并且位置互相“接近”的文件。在许多结构化数据库中,数据库中含有的文件已被注释过,即具有解释文件中某些部分或某些类型的信息的字段。这就允许只在文件的局部搜索匹配,在事先知道所查询信息的类型时是有用的。
当在正文文件中搜索时,数据是结构化的,很可能是以某种自然语言(如英语、挪威语等)的形式出现的。当检索带有一定上下文的文件时,有可能用近似尺度(proximity metrics)来比较与该查询近似匹配的关键字或短语。允许关键字和短语中有差错是近似搜索(proximity)的常用方法,使用近义词是另一种常用方法。近似搜索只要求被检索信息与查询之间有部分匹配。国际公开的申请WO96/00945,名称为“可变长数据序列匹配方法和设备”(Doringer等人),已转让给IBM公司,该申请披露了一种具有像特里树的(trie-like)结构的数据库的建立、维护和使用,该数据库用于存储表目和从表目中检索至少部分的匹配,最好是搜索参数(输入键)的最长或所有部分匹配。
本发明的主要目的是提供一种搜索系统和方法,用于在大量的数据中快速有效地搜索和检索信息。本发明的目的特别是为了提供一种适合用搜索引擎搜索带有分布式大容量数据存储的信息系统(例如因特网)的搜索系统。应当明白,按照本发明的搜索系统决不限于搜索和检索以字母数字符号的形式存储的信息,而是能同样很好地应用于搜索和检索以数字化的图形和图象符号的形式存储的信息,因为这里所使用的字正文也可以被解释为图象-当这些图象全部或部分地被表示为符号的集合时。也应当明白,按照本发明的搜索系统能以用商家提供的计算机系统上的合适的高级语言编写的软件的形式实现,但是它也能以用于搜索和检索上述种类的信息的专用处理器设备的形式实现。
按照本发明,上述目的和优点是用一种搜索系统实现的,该搜索系统的特征在于,数据结构包含以后缀树ST(T)为形式的树结构,用于存储正文T中的字的后缀、字序列和符号序列;尺度M包含关于正文T中的字或符号与查询Q之间匹配的近似度的编辑距离尺度与关于正文T中的字或符号的序列S与查询序列P之间匹配的近似度的编辑距离尺度的组合,后一个编辑距离尺度包括关于将一种字或符号的序列S转换成另一种字或符号的序列P的加权成本函数;搜索算法包含用于确定正文T与查询Q各自的后缀树表示中的字之间的匹配程度的第一算法,和/或用于确定正文T与查询Q各自的后缀树表示中的字的序列之间的匹配程度的第二算法,所述第一和/或第二算法用以字、字的序列或符号的序列或者它们的组合为形式的查询Q搜索数据结构,使得信息R被根据查询Q而检索出来,前者与后者之间具有规定的匹配程度。
在按照本发明的搜索系统的一个有益的实施例中,后缀树ST(T)是一个只包含正文T中后缀的一个子集的字间隔稀疏后缀树SSTWS(T)。
按照本发明,上述目的和优点也是用一种方法实现的,该方法的特征在于,生成正文T的字间隔稀疏后缀树SSTWS(T),以代表正文T中所有从一个字分隔符起始的后缀;在字间隔稀疏后缀树SSTWS(T)中存储正文T中的字的序列信息;为字序列S、P生成一个编辑距离尺度D(S,P),作为将序列S转换成序列P的编辑操作的最小总成本,最小总成本是每个编辑操作的成本函数的总和;为字序列S、P生成一个与字大小有关的编辑距离尺度DWS(S,P),作为将序列S转换成序列P的最小总成本,该最小总成本是由代表编辑操作中所涉及的字大小的参数加权的每个编辑操作的成本函数的总和;通过计算所有匹配的编辑距离D(SR,PQ)而分别地确定所检索信息R的字序列SR、PQ与查询Q之间的匹配。
按照本发明的方法最好还包含对把序列S变为另一个序列P的编辑操作以代表序列S、P的符号之间的近似性的参数进行加权,由此在确定有关编辑操作的成本时,将序列S、P之间的相似性考虑在内。
在按照本发明的方法中,最好通过计算查询字序列PQ中限定数量的字的编辑距离D(SR,PQ)来限制匹配的数目。
上述目的和优点也以按照本发明的搜索系统在近似搜索引擎中的使用而实现。
以下将参照各附图更详细地讨论按照本发明的搜索系统和方法,附图中

图1表示一例后缀树;图2是如本发明所使用的字间隔稀疏后缀树的例子;图3是现有技术中已知的所谓的PATRICIA特里树的一个例子;图4是如本发明所使用的字间隔稀疏后缀树的另一个例子;图5是如本发明所使用的显式(explicitly)存储的字序列信息的一个例子;图6是如本发明所使用的叶节点结构;图7是按照本发明的搜索系统所用的搜索引擎的结构的示意图。
按照本发明的搜索系统主要由三个部分组成,即数据结构、近似性匹配的尺度和搜索算法。在目标是全文检索时-对于按照本发明的搜索系统来说主要将是这样,则将是可检索的整个数据集合将被存储在支持高查询效率的数据结构中。
首先将对构成本发明基础的基本概念作较详细的讨论。以正文T的形式存储的信息被划分成字和字序列。字是由字边界项分隔的整个正文的子串。把字边界项的集合记为BTword。字边界项的一个常用集合可能是{”,’:’,’\t’,’\n’,’\0’,’.’,’;’,’ ’},其中\t表示制表符,\n表示换行符,\0表示文件结束标记。有些关于串和序列的定义就本发明的以下说明来说将是有用的。
定义1串串是从字母表中提取的诸如ASCII字符的符号的一个序列。于是串的长度就是组成串的符号或字符的实例的数目,记为|x|。如果x的长度是m,则也可以将串写成x1x2xi...xm,其中xi代表串中的第i个符号。
x的子串是由x内的一组相邻的符号给出的一个串。所以,可以通过从串的开始或结尾删除一个或多个字符而由x获得一个子串。
定义2子串,后缀和前缀x的子串是串x/=xixi+1…xj,1<=i<=j<=n。串xi=xin=xi...xn是串x的一个后缀,串xj=x1j=x1x2...xj是串x的一个前缀。
也用到字序列的概念。
定义3字序列字序列是一序列分离的、连续的字。字序列S=s1s2…sn由n个单词(或串)s1、s2、至sn组成。
字序列是用序列边界项分隔的。把序列边界项的集合记为BTseq。序列边界项的一个常用集合可能是{’\0’},其中\0表示文件结束标记。
现在可以将近似词匹配的概念描述如下。
给定串s=s1s2…sn和查询项q=q1q2…qm。任务是寻找g在s中与原始查询项q最多有k个误差(error)的q的所有出现(occurrences)。近似性尺度确定如何计算q与潜在的匹配si...sj之间的误差。
关于近似词匹配的常用尺度是莱文斯坦距离(Levensteindistance)或编辑距离(参看V.I.Levenstein的“Binary codescapable of correcting deletions,insertions,and reversals”(俄语版),Doklady Akademii nauk SSSR,卷163,第4号,页845-848,1965年;以及“Cybernetics and Control Theory”,卷10,第8号,页707-710,1966年)。这个尺度被定义为将一个串转换成另一个串所需的最小编辑操作数。一个编辑操作是由任何重写规则给出的,例如●(a→ε),删除●(ε→a),插入●(a→b),修改假设p和m是两个大小分别为i和j的词。则D(i,j)代表p的第i个前缀与m的第j个前缀之间的编辑距离。编辑距离被递归地定义为D(i,0)=D(0,i)=i 其中,如果pi=mj则δ(i,j)=0,否则δ(i,j)=1也有可能定义一个字序列中的字的水平上的近似匹配,这可作如下描述。
给定一个由n个字w1,w2…wn组成的正文T,其中每个字是字符串。序列模式P由m个字p1,p2,…pm组成。如果对于使得1<=i<=j<=n的某对i,j,序列p1,p2,…,pm与序列wi,wi+1,…,wj的不同最多有k个误差,则说序列模式P在T中有一个近似的出现。还是用近似性尺度确定如何计算两个序列之间的误差。
要在搜索系统中被检索的正文必须以便于搜索数据的方式被标引。所以按照本发明,数据结构是本发明的搜索系统的核心数据结构,是在所谓的后缀树,特别是稀疏后缀树的基础上建立的。下文将定义这两种结构。后缀树S(T)是正文T中所有可能的后缀的树表示。将后缀树S(T)中所有一元节点(unary node)与其子节点并置时,产生一个紧致变体(compact variant)。
图1表示关于正文T=“structure”的后缀树。
本发明更特别地是在稀疏后缀树的基础上建立的。J.Kaerkkaeinen和E.Ukkonen在“Sparse Suffix Trees”(稀疏后缀树)中介绍了这些稀疏后缀树(第二届国际计算与组合数学年会(COCOON’6)论文集,Springer Verlag,219-230页),该文还是根据D.R.Morrison发表的“PATRICIA-Practical Algorithm toRetrieve Information Coded in Alphanumeric”(检索以字母数字编码的信息的实用算法)(ACM杂志第15期,514-534页,1968)的概念。稀疏后缀树的定义如下。
定义4稀疏后缀树正文T的稀疏后缀树SST(T)是一个只含有该正文的后缀树ST(T)中出现的后缀的一个子集的后缀树。
在用按照本发明的搜索系统搜索全部字时,最好通过只存储在字边界起始的后缀来建立一个非均匀间隔的(non-evenly spaced)稀疏后缀树。字间隔稀疏后缀树的概念的定义如下。
定义5字间隔稀疏后缀树正文T的字间隔稀疏后缀树SSTWS(T)是一个只含有该正文中在字分隔符起始的后缀的稀疏后缀树SST(T)。
图2表示字间隔稀疏后缀树的两个例子。为加强可读性,部分后缀被省略。图2中,关于T=“to be the best”的字间隔稀疏后缀树是左结构的,关于T=“to make the only major modification”的字间隔稀疏后缀树是右结构的。
在本发明的搜索系统中,将正文自然地划分成字,独立地存储在字间隔稀疏后缀树中。由于用于搜索的原子搜索词项字本身,最好每个后缀在字的结尾终止。这就把稀疏后缀树缩减为一个所谓的PATRICIA特里树(见所引用的Morrison的文章)。文献中将特里树定义为一个有根树,其特点是,除根节点外的每个节点都含有一个字母符号,同一节点任何两个子节点都不含相同的符号。应当注意到,单词trie(特里树)是从单词“retrieval”(检索)派生的,因此表明特里树是一种适合数据检索的树结构。PATRICIA特里树被定义成一个键字间隔稀疏后缀树(KWS树),其中在叶节点中存储的后缀由键字定界符限制。图3表示的一例PATRICIA特里树代表键字集合{“avoid”,”abuse”,”become”,”breathe”,”say”}。本发明的搜索系统所用的结构与PATRICIA特里树不同,因为该搜索系统显式地存储字的序列信息。要缩短后缀长度,就要求改变叶节点的表示法。用后缀串本身代替指向原始正文的指针。图4表示对如图2中所示的相同的两个串的这种后缀长度缩短。换言之,图4表示的是具有在字边界处切断的后缀的字间隔稀疏后缀树。图中,代表T=“to be the best”的字间隔稀疏后缀树显示在左边,关于T=“to make the only majormodification”的字间隔稀疏后缀树显示在右边。叶节点将含有出现该叶节点所代表的字的所有位置的列表。
本发明不是用原始正文中发现的信息的隐式序列(implicitsequence),而是显式地在字间隔稀疏后缀树中存储序列信息。这是用代表原始正文中相邻字的叶节点之间的指针完成的。因为至少能得到特定叶节点所代表的字的所有出现,所以必须向下一个相邻叶添加一个指针。
叶节点只含有它代表的字的后缀,在遍历出现列表(occurrencelist)中的序列指针时,只揭示每个相邻字的后缀。这是通过存储叶节点中的整个字而不是仅仅存储后缀来处理的,因此本发明的数据结构在这方面也不同于PATRICIA特里树。图5表示用于显式存储的字序列信息的数据结构,该结构具有一个出现列表,列表带有指向下一个相邻字和指向其出现的指针。
按照本发明的搜索系统用一个PATRICIA特里树来组织该出现列表(见所引用的Morrison的文章)。PATRICIA特里树使搜索系统能访问在时间0(|p2|)内符合串p2的所有相邻字的列表,其中|p2|当然是p2的长度。通过用PATRICIA特里树来组织出现的列表(list ofoccurrence),能获得一个用于存储来自正文的字并保存序列信息的完整定义的树结构。图6表示的典型的叶节点,既有一个代表所组织的出现列表的PATRICIA特里树,又有额外的未排序的出现的列表。作为本发明的搜索系统中所用的出现列表的存储要求的例子,一个有约742358个文件的数据库共有333856744个单词和一个有538244个不同单词的词汇表。数据库的总量是2054.52MB。因此平均单词长是6.45个字节。采用32位指针的稀疏后缀树的每个内部节点使用8个字节。假设每个字平均占用3个内部节点。那么叶节点就需要6.45个字节来存储整个字,加上用于指向出现列表的指针的32位。每个字共占用34.45个字节,则总量为18.108MB。此外,出现列表的大小是每项4个字节,如果要用完整形式的(full version),则每项12个字节。所以出现列表的总存储要求的变动范围是1273MB至3820MB。采用稀疏后缀树的数据结构具有的大小将在原始正文的60%至200%之间。这与一个倒置文件(inverted file)的要求是可比的,但是按照本发明的搜索系统中所用的稀疏后缀树提供更快的搜索,能进行近似对比,并易于进行序列对比。
在近似搜索中,用尺度来给出一个可能匹配的误差度量(errormeasure)。按照本发明的搜索系统采用几种尺度,特别是各尺度的独特组合。这些尺度与组合尺度将在下文中作讨论。
如上定义的编辑距离尺度允许直观地应用于字及字符的删除、插入和修改操作。在比较短语时的常见误差是缺失、多余或变化的字。所以,要对前文所定义的编辑距离尺度进行修改和扩充,以便适合于近似字序列对比的问题。对关于序列的编辑操作定义如下。
定义6序列的编辑操作为了将一个字序列S转换成另一个字序列P,可以按以下重写规则书写对序列中的字所允许的编辑操作●(a→ε),从序列中删除字a●(ε→a),向序列中插入字a●(a→b),将字a修改为字b●(ab→ba),相邻字a和b的置换按照本发明的搜索系统不是以字符作为基本单位,而是对字进行编辑操作,所以应当把字视为操作的基本单位。
成本函数Cedit(x→y)是一个常量,其定义为 其中,如果x=y则δ(x,y)=0,否则δ(x,y)=1(3)现在就能用以上所定义的编辑操作来定义序列的编辑距离。定义7序列的编辑距离序列的编辑距离尺度定义将序列S=s1,s2,…,sn与序列P=p1,p2,…,pm之间的距离Dseq(S,P)定义为将序列S转换成序列P的一系列编辑操作的成本c(x→y)的最小和。
按照本发明的搜索系统对编辑操作的成本用所操作的字的大小进行加权,加强序列的编辑距离尺度。
定义8与字大小有关的序列的编辑距离与字大小有关的序列的编辑距离尺度被定义为将一个序列转换成另一个所需的编辑操作的成本的最小总额。成本函数与操作数的字大小有关。
在按照本发明的搜索系统中,成本函数的定义由下列方程给出Cinsert(ε→a)=|a|/1Cdelete(a→ε)=|a|/1Ctranspose(ab→ba)=1 (4)Cchange(a→b)=max(||a|-|b||,1)/1其中1代表所比较的两个序列中的字的平均长度。每个编辑操作的成本,由一个与序列的总长度的变化成比例的大小加权,或者由当前字长与有关序列中的平均字长的比例加权。
现在的距离尺度反映的是对该字长度与该字对该字序列的语义上下文的重要性之间的某种关系的假设。此外,按照本发明的搜索系统在使用修改编辑操作(a→b)时在利用字符级的相似性。将字a替换为另一个字b要涉及到这两个字之间的相似性。因此将修改编辑操作的新的成本函数定义为cchange(a→b)=∂apprpx(a,b)max(||a|-|b||,i)i----(5)]]>其中δapprox(a,b)= D(a,b) (6)其中D(a,b)是字的归一化编辑距离测量函数,0意味全相似,1意味无相似。
按照本发明的搜索系统将序列的编辑距离尺度与公式(4)、(5)和(6)所给出的成本函数结合起来,其中,字的编辑距离尺度由公式(1)给出。这意味着仅当正在对比的字互相的误差超过k时才使用序列编辑操作。
按照本发明的搜索系统中所使用的算法,对所述结构进行高效的搜索。匹配是按照以上给出的尺度来寻找的。
字间隔稀疏后缀树中的近似词对比是通过编辑距离尺度的计算与后缀树的遍历的结合而进行的。用伪码编写的一个这样的算法在表Ⅰ中给出。
该算法改编自H.Shang和T.H.Merrettal提出的特里树对比算法(trie-matching algorithm)(“Tries for Approximate StringMatching”(用于近似串对比的特里树),IEEE Transactions onKnowledge and Data Engineering(IEEE知识与数据工程学报),1996年,卷5,号4,540-547页)。按照Shang和Merrettal(在所引用文章中)的说法,该算法最坏情况下的期望运行时间是0(k|∑|k)。
近似字序列对比要求计算所有可能的匹配的字序列编辑距离。然而,可以通过只对可能的字开始计算编辑距离来限制可能的匹配的数量。从序列中删除一个字的成本决定可能的开始字的数量。如果删除查询序列PQ中前i个字的累积成本超过给定的误差阈值(errorthreshold),则以该查询的自第i个字开始的候选序列就不可能是个匹配。因此对于i个字的查询序列PQ来说,最多要试试i个可能的开始字。由于树的序列结构中没有后向指针(backpointer),所以将不能保证能获得所有的匹配。增加后向指针则会解决这个问题。下面的表Ⅱ中以伪码的形式给出了按照本发明的搜索系统所使用的近似字序列对比的算法。这个算法试图以p1,p2…顺序地对比第一个键字,测试所有可能的起始位置。
表Ⅱ中的ApproxSequenceMatch算法中的ApproxMatchRest函数由下面的表Ⅲ中的算法定义。该函数用一个初始误差值对比剩下的序列。
表Ⅰ
表Ⅱ
表Ⅲ
表Ⅱ和Ⅲ中的算法是用与表Ⅰ中的算法相同的伪码编写的。
用于寻找符合序列中第一个字的叶节点的FindExact函数,执行对树的简单遍历,其运行时间是0|p1|,其中p1代表查询序列PQ中的第一个字。编辑距离的计算,如果用直接的动态程序,能在|P|2时间内完成,如果用该计算算法的改进版本,则能在0(k)时间内完成(其中k代表误差阈值),参看E.Ukkonen的“Finding ApproximatePatterns in Strings”(查找串中的近似结构)(Journal ofAlgorithms,1985,卷6,132-137页)。
如果∑nocc(pi)代表每个字pi在字序列中出现的次数的总数,则最坏情况的运行时间是0(k∑nocc(pi))。
最后将简要地讨论在按照本发明的搜索系统的基础上实现的一个搜索引擎。具体来说,以按照本发明的搜索系统为基础的搜索引擎是按近似搜索引擎(ASE)实现的,目的是作为一个索引大量文件集合和提供用于这些文件集合的精确和近似搜索的算法的搜索引擎。ASE将提供一个用于存储大型正文或文件的集合的数据结构。应当明白,该数据结构可以从含有如图形、影像、声音的其它信息的文件生成,并且正文可以是格式化的和/或带注解的。该数据结构与以上讨论的字间隔稀疏后缀树完全相同,当然也应当明白,这些字是搜索系统的关键字,所以也可以将字间隔稀疏后缀树称作键字间隔稀疏后缀树(KWS树)。ASE将含有在KWS树中索引文件的算法。当然,这些算法不构成按照本发明的搜索系统的一部分,但是它们是本领域的熟练人员所熟知的,在文献中有描述,例如参看J.Kaerkkaeinen和E.Ukkonen(的所引用的文章)和D.R.Morrison(的所引用的文章)。
按照本发明和在ASE中所使用的搜索系统采用的算法在KWS树中既能进行模式(pattern)的精确对比又能进行近似对比。以上在表Ⅰ和表Ⅱ中给出的算法用于以非统一的编辑距离作为尺度的近似字和近似字序列对比。在KWS树中查找长度m的键字p的精确匹配,在本领域中是已知的,容易以对树结构的简单遍历的方式来实现。表Ⅳ给出一个用伪码编写的用于精确键字对比的适当算法。按照本发明的搜索系统将也能支持用于精确键字序列对比的算法。精确键字序列对比的算法在本领域中是已知的,容易以例如表Ⅴ中所示的用伪码编写的方式来实现。这里所给出的算法将查找第一个键字的精确匹配,如果有的话。然后它将对第一个键字的所有出现,查看第二个键字是否符合查询的第二个键字。如果符合,就用表Ⅴ中的MatchRest过程判断这头两个键字的出现是否在整个序列中匹配。对于KWS树中的近似键字对比,搜索系统执行上述表Ⅰ中的算法。对于近似键字序列对比,搜索系统执行上述表Ⅱ中的算法,以p1,p2…顺序地对比第一个键字,测试所有可能的起始位置,用表Ⅲ中所给出的ApproxMatchRest函数去对比在特定位置起始的序列和处理初始误差值。
最后,ASE将需要一个简单的前端来赋予用户对索引和查询文件集合的控制。该前端也应当能提供文件集合的统计并提供一个用于例如通过WWW远程接入的网络接口和一个本地服务器用户接口。
按照本发明的搜索系统所用的ASE应当在便于容易地增加新的索引和搜索算法方面具有通用性。也应当有可能以容易的方式实现对有关每个文件的额外信息或键字的存储。特别是,前端应当独立于数据结构和搜索算法,使得这些中的内部交换对前者的设计没有影响。
按照本发明的搜索系统的使用,应当将ASE设计得在数据结构中有尽可能低的存储开销。也应当将搜索设计得尽可能地快。然而,这两个因素之间一般要有个折衷。
表Ⅳ
表Ⅴ
总之,具有用于按照本发明的搜索系统的ASE将包含四个主要模块。
1.用于在KWS树中索引文件的文件索引模块DIM。该模块也应当含有支持几种文件类型的扩展。
2.以键字间隔稀疏后缀树(KWS树)为基础的数据存储模块DSM。
3.用于搜索KWS树的搜索算法模块SAM,包含分别用于字和字序列的精确和/或近似对比的算法。
4.既包含本地服务器用户接口又包含用于远程查询的网络接口的用户接口前端模块FEM。
ASE的这四个模块共同配合,提供一个完整的搜索引擎功能。图7表示不同模块之间的数据流。索引文件集合的工作在由包含索引算法的文件索引模块DIM中完成。当然,该模块并不是按照本发明的搜索系统的一部分,但是能被使用的索引算法在本领域是众所周知的。文件中找到的正文被传送到数据存储模块DSM上存储。数据存储模块当然是按照本发明的搜索系统的一部分,已经申明是建立在KWS树结构的基础上的。搜索算法模块SAM含有用于搜索位于数据存储模块中的数据的算法。该模块执行按照本发明的搜索系统,允许搜索过程查询树和节点信息的数据结构,同时保存状态变量。前端模块例如可以在工作站或个人电脑等等的上面实现,提供如上所述的功能。
正如介绍中已经申明的那样,应当明白,按照本发明的搜索系统能以用商业上提供的计算机系统(包括工作站)上的合适的高级语言编写的软件的形式来实现。它也如所申明的那样,能以专用处理器设备的形式实现,它最好能包含大量并行处理器,能并行处理大的字序列,用大量的查询字序列进行近似对比。然后可以将处理器的固定操作参数以低级代码的形式输入,而从KWS树结构输入的键字序列便于极快地处理大量数据的查询,按照本发明的搜索系统由此将高度适合在例如万维网上进行搜索,所搜索的KWS树结构甚至大得足以索引万维网上目前提供的所有文件,还能处理将来在万维网上预期的数据量的增长。
权利要求
1.一种用于信息-特别是以正文T的形式存储的信息-检索的搜索系统,其中,信息检索以查询Q与被检索信息R之间的给定或不同程度的匹配而发生,其中,该搜索系统包含一个用于存储正文T的数据结构,一个测量查询Q与被检索信息R之间匹配程度的尺度M,以及用于执行搜索-特别是以键字为基础的全文搜索-的搜索算法,其特征在于,该数据结构包含一个以后缀树ST(T)为形式的树结构,用于存储正文T中的字、字序列和符号序列的后缀;尺度M包含关于正文T中的字或符号与查询Q之间匹配的近似度的编辑距离尺度与关于正文T中的字或符号的序列S与查询序列P之间匹配的近似度的编辑距离尺度的组合,后一个编辑距离尺度包括对将一种字或符号的序列S转换成另一种字或符号的序列P的编辑操作的成本函数进行加权,该搜索算法包含用于确定正文T与查询Q各自的后缀树表示中的字之间的匹配程度的第一算法和/或用于确定正文T与查询Q各自的后缀树表示中的字的序列之间的匹配程度的第二算法,所述第一和/或第二算法用以字、字序列、符号序列或者它们的组合为形式的查询Q搜索数据结构,使得信息R被根据查询Q而检索出来,前者与后者之间具有规定的匹配程度。
2.按照权利要求1的搜索系统,特征在于,该后缀树ST(T)是一个只包含正文T中一个后缀子集的字间隔稀疏后缀树SSTWS(T)
3.一种用于信息-特别是以正文T的形式存储的信息-检索的搜索系统中的方法,其中,正文T被分成多个字和字序列,一个字是符号的一个序列,并且其中每个字被结构化为一个或者多个后缀,后缀是字中形成序列的符号的子集,该方法的特征在于,生成正文T的字间隔稀疏后缀树SSTWS(T),以代表正文T中所有从一个字分隔符起始的后缀;在字间隔稀疏后缀树SSTWS(T)中存储正文T中的字的序列信息;生成一个字序列S和P的编辑距离尺度D(S,P),作为将序列S转换成序列P的编辑操作的最小总成本,总成本是对于每个编辑操作的成本函数的总和;对于字序列S和P生成一个与字大小相关的编辑距离尺度DWS(S,P),作为将序列S转换成序列P的最小总成本,该总成本是对于每个编辑操作的成本函数由关于在编辑操作中涉及的字大小的参数进行加权的总和;以及通过对于所有匹配计算编辑距离D(SR,PQ),分别确定被检索信息R和查询Q的字序列SR和PQ之间的匹配。
4.按照权利要求3的方法,特征在于,还对把序列S变为序列P的编辑操作,用一个代表序列S和P的符号之间的近似性的参数进行加权,由此在确定有关编辑操作的成本时,将序列S和P之间的相似性考虑在内。
5.按照权利要求3的方法,特征在于,通过计算查询字序列PQ中限定数量的字的编辑距离D(SR,PQ)来限制匹配的数目。
6.按照权利要求1或2的搜索系统在近似搜索引擎中的使用。
全文摘要
一种用于信息检索的搜索系统包含一个用于存储正文T中的数据结构,一个包含分别关于正文T字和/或符号及其序列和序列P中的字和/或符号之间的匹配的近似程度的编辑距离尺度的组合尺度M,对将序列S的字或符号转换成序列P的编辑操作的成本函数进行加权;和用于分别确定分别在正文T和查询Q的后缀树表示中的字或字序列之间的匹配程度的搜索算法。该算法以查询Q搜索该数据结构,以与该查询的具体匹配检索信息。该搜索系统的一种用于信息检索的方法生成字间隔稀疏后缀树用于存储正文T中的字的后缀作为字序列信息,以及一个用于字序列S和P的与字的大小有关的编辑距离尺度,并且包括编辑距离的字加权成本函数,以及通过计算关于所有匹配的编辑距离确定字序列SR或被检索的信息R与一个查询Q的字序列PQ之间的匹配程度。还公开了该搜索算法在近似搜索引擎中的应用。
文档编号G06F17/30GK1317114SQ99810507
公开日2001年10月10日 申请日期1999年7月9日 优先权日1998年7月10日
发明者K·M·里斯维克 申请人:快速检索及传递公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1