搜索系统索引切换的方法及搜索系统的制作方法

文档序号:6648275阅读:164来源:国知局
专利名称:搜索系统索引切换的方法及搜索系统的制作方法
技术领域
本发明涉及网络搜索服务技术,尤其涉及一种搜索系统索引切换的方法及搜索系统。
背景技术
目前的网络搜索服务技术已经应用在许多方面,例如应用在电子商务的商品全文检索系统中。图1为现有的一种搜索系统的结构示意图。参见图1,该搜索系统包括索引服务器、搜索服务器和中转服务器。
其中索引服务器中包括搜索引擎的索引信息生成单元,用于生成用来进行搜索服务的索引信息,即索引、内存索引表和属性过滤表,并将这些数据提供给搜索服务器。其中的索引是指为一个特定的应用程序提供的用于文档检索的所有相关数据,其中的文档为索引服务器用来进行索引的原始数据;属性过滤表是指以文档标识(ID)排序、且其中的每一条记录表示对应文档ID的商品的可过滤属性的表,可过滤属性可以为商品的价格、出厂日期等;内存索引表是指商品的唯一ID到商品当前的文档ID的对应关系表。
搜索服务器中包括搜索引擎,具有全文检索、结果过滤、记录即时删除以及索引切换的功能,主要用于根据索引服务器生成的并传输来的索引信息进行搜索服务。
中转服务器主要为索引服务器提供应用相关的数据源,并将前端的搜索请求命令转发给搜索服务器。
由于网络中的数据源是不断更新变化的,因此索引服务器需要及时地根据数据源生成新的索引信息,并通知搜索服务器进行索引切换。所谓索引切换是指搜索服务器从索引服务器中获取最新的索引信息索引、内存索引表和属性过滤表,并以此更新自身中原有的索引信息,以更新后的索引信息进行搜索服务。
在现有搜索服务器的索引切换技术中,需要同时切换索引数据、属性过滤表和内存索引表,为了保证在索引切换的过程中搜索服务器的索引与属性过滤表和内存索引表中的数据保持一致,在更新索引、属性过滤表和内存索引表时,需要对索引信息进行加锁保护,以防止搜索服务器搜索到和当前属性过滤表以及内存索引表不一致的数据,但是在加锁保护时搜索服务器无法访问索引信息,因此在索引切换时无法进行搜索服务。这种技术方案在索引信息很大的情况下,索引切换的时间会很长,这样严重影响了搜索服务器的工作,导致搜索服务器在长时间内无法进行搜索服务,降低了搜索服务的质量。

发明内容
有鉴于此,本发明的主要目的在于提供一种搜索系统索引切换的方法,以降低索引切换对搜索服务的影响,提高搜索服务的质量。
本发明的另一目的为提供一种搜索系统,以降低索引切换对搜索服务的影响,提高搜索服务的质量。
为了实现上述发明目的,本发明的主要技术方案为一种搜索系统索引切换的方法,在搜索服务器中预设用于存储索引信息的主目录和备用目录以及加载索引信息的主内存空间和备用内存空间,搜索服务器根据主目录中和主内存空间中的索引信息进行搜索操作;在进行索引切换时将索引服务器生成的新索引信息拷贝到备用目录中并加载到备用内存空间中,之后将主目录和备用目录相互切换,并将主内存空间和备用内存空间相互切换。
优选地,所述将主目录和备用目录相互切换的具体方法为将主目录的名称和备用目录的名称相互交换。
优选地,所述索引信息包括索引、属性过滤表、和内存索引表。
优选地,该方法进一步包括根据索引信息的大小来设定合适的索引切换时间。
优选地,所述在内存中加载的索引信息为属性过滤表和内存索引表;所述将主内存空间和备用内存空间相互切换的具体方法为交换主内存空间和备用内存空间中属性过滤表的内存首地址,交换主内存空间和备用内存空间中内存索引表的内存首地址。
优选地,对所述主目录和备用目录相互切换、主内存空间和备用内存空间相互切换的操作与所述搜索操作加互斥锁保护。
优选地,所述的搜索系统为电子商务的商品全文检索系统。
优选地,所述的索引服务器生成新索引信息的具体方法为(1)为一篇文档生成倒排索引数据;(2)进行内存索引合并,合并内存中的一批文档,生成一个更大的数据段,将该段存于磁盘;(3)索引优化,重新生成新的优化后的索引;(5)生成商品的属性过滤表;(6)生成商品的内存索引表。
一种搜索系统,包括索引服务器、中转服务器和搜索服务器,该搜索服务器中设置有用于存放索引信息的主目录和备用目录,以及主内存空间和备用内存空间,搜索服务器根据主目录和主备用内存空间中的索引信息进行搜索操作;搜索服务器中还包括索引切换单元,用于从索引服务器中拷贝新生成的索引信息到备用目录,并加载到备用内存空间,然后切换主目录和备用目录,同时切换主内存空间和备用内存空间。
优选的,所述索引切换单元进一步包括互斥锁单元,用于在切换主目录和备用目录以及主内存空间与备用内存空间时,对切换操作和搜索引擎的搜索操作加互斥锁。
优选的,所述索引服务器进一步包括记录更新、优化索引数据、属性过滤表和内存索引表生成以及数据拷贝的功能单元。
本发明将当前的索引数据、属性过滤表、内存索引表放在主目录下,当前的属性过滤表、内存索引表加载在主内存空间中;切换过来的新的索引数据、属性过滤表、内存索引表放在备用目录下,切换过来的新的属性过滤表、内存索引表加载在备用内存空间中。搜索系统根据主目录和主内存空间中的数据进行搜索服务。当需要切换时,只交换两个目录的名字就可以实现切换,在切换的所有准备工作完成之后,系统只需要交换索引的属性过滤表和内存索引表的首地址即可,并只需在两块内存的首地址交换时进行加锁保护,而这个加锁保护的时间非常短,基本不会影响搜索服务,因此本发明可以大大降低索引切换对搜索服务系统的影响。
另外,本发明的搜索系统可以根据索引数据的大小来设定合适的索引切换的时间,保证了搜索系统在不影响正常服务的情况下,它的索引信息又能及时更新,并且优化后的索引可以在一定程度上提高搜索服务的性能,节省搜索服务器的磁盘空间。


图1为现有的一种搜索系统的结构示意图;图2为本发明所述方法的一种实施例的流程图;图3为本发明所述搜索系统的一种实施例的结构示意图。
具体实施例方式
下面通过具体实施例和附图对本发明做进一步详细说明。
本文以电子商务的商品全文检索系统所应用的搜索系统为例进行说明。
本文的实施例中在搜索服务器建立两个目录index目录和switch目录;index目录为主目录,switch目录为备用目录。并建立两个内存空间主内存空间和备用内存空间。搜索引擎当前使用的索引信息索引、属性过滤表、内存索引表放在index目录下,当前使用的属性过滤表和内存索引表加载在主内存空间中。索引切换过来的新的索引、属性过滤表、内存索引表放在switch目录下,新的属性过滤表和内存索引表加载在备用内存空间中。搜索服务器总是根据index目录下和主内存空间中的索引信息进行搜索操作。
图2为本发明所述方法的一种实施例的流程图。参见图2,该流程包括步骤21、索引服务器根据数据源生成新的索引信息。
本步骤具体包括(1)为一篇文档生成倒排索引数据,倒排索引可以记录关键词相关的排序信息,如关键字在某个文档的权值,出现的位置等等,倒排是关键词到文档列表的映射。(2)进行内存索引合并,合并内存中的一批文档,生成一个更大的数据段,将该段存于磁盘。(3)索引优化。在上面两个步骤中,将文档加入到索引后,执行删除操作时,索引不会立即从索引文件中删除,而是将删除的文档放在″删除″的文件中。在索引优化时,系统会重新生成新的优化后的索引文件(即索引)。(5)生成商品的属性过滤表,保存着所有商品的非索引的选择性属性信息,这些属性在全文检索中用于对商品的检索结果进行过滤。(6)生成商品的内存索引表。生成商品的外部唯一标识ID到搜索系统当前的文档ID的Hash Table映射表,当搜索服务器收到是中转服务器的记录删除命令时,系统通过查找该表来快速定位商品记录当前的文档ID。
步骤22、索引服务器向搜索服务器发送索引切换命令。
步骤23、搜索服务器收到索引服务器的索引切换命令,从索引服务器中拷贝优化后的索引信息(包括索引、属性过滤表、内存索引表)到Switch目录下,并将其中新生成的属性过滤表和内存索引表装载到备用内存空间中。
由于执行步骤23所占用的时间较长,因此本发明在搜索服务器执行步骤23的同时,搜索服务器仍然利用index目录中的索引信息以及在主内存空间中已经装载的旧的属性过滤表和内存索引表进行搜索操作,使得用户仍然可以正常搜索旧的索引信息。
步骤24、搜索服务器将switch目录和index目录相互切换,具体为交换switch目录和index目录的目录名;然后将主内存空间和备用内存空间进行切换,具体为交换备用内存空间中新属性过滤表和主内存空间中旧属性过滤表的内存首地址,交换备用内存空间中新内存索引表和主内存空间中旧内存索引表的内存首地址。经过主备目录和主备内存空间的切换,原来的备用目录和备用内存空间变为当前的主目录和主内存空间,而搜索服务器始终按照当前的主目录和主内存空间进行搜索操作,所以可以使搜索操作总是以新的索引信息为基础。
为了保持当前索引和当前属性过滤表数据的一致性,上述主备目录和主备内存空间的两个切换操作需与搜索服务器的搜索操作加互斥锁保护。由于本步骤中所述的两个操作占用CPU很少的时间,因此加互斥锁保护的时间也很短,所以较现有技术来说,本发明基本上对搜索操作没有什么影响。
在实际应用中,由于索引服务器会不断地生成新的索引信息,因此上述步骤21到步骤24的索引切换是循环执行的。本发明的搜索系统可以根据索引信息的大小来设定合适的索引切换的时间,保证了搜索系统在不影响正常服务的情况下,它的索引信息又能及时更新,并且在步骤21中对索引进行优化,优化后的索引可以在一定程度上提高搜索服务的性能,节省搜索服务器的磁盘空间。
图3为本发明所述搜索系统的一种实施例的结构示意图。参见图3,该搜索系统包括索引服务器35,具有记录更新、优化索引数据、属性过滤表和内存索引表生成以及数据拷贝的功能单元。其中包括索引信息生成单元36,用于生成新的索引信息,并通知搜索服务器进行索引切换。
中转服务器37,主要为索引服务器提供应用相关的数据源,并将前端的搜索请求命令转发给搜索服务器,该中转服务器37与现有技术的中转服务器相同,此处不再赘述。
搜索服务器38,主要用于根据索引服务器生成的并传输来的索引信息进行搜索服务。其中包括
搜索引擎30,具有全文检索、结果过滤、记录即时删除以及索引切换的功能。
用于存放索引信息的主目录31和备用目录32,以及主内存空间33和备用内存空间34。搜索引擎30根据主目录31和主内存空间33中的索引信息进行搜索操作。主目录31和备用目录32中用于存储索引信息索引301、属性过滤表302和内存索引表303;主内存空间33和备用内存空间34用于加载属性过滤表302和内存索引表303。搜索引擎30根据主目录31和主备用内存空间33中的索引信息进行搜索操作。
搜索引擎30中进一步包括索引切换单元35,用于从索引服务器中拷贝新的索引信息到备用目录32中,并加载属性过滤表302和内存索引表303到备用内存空间34;然后切换主目录和备用目录,同时切换主内存空间和备用内存空间即交换主目录和备用目录的目录名,以及分别交换主、备用内存空间中属性过滤表的首地址和内存索引表的首地址。
所述索引切换单元进一步包括互斥锁单元304,用于在切换主目录31和备用目录32以及主内存空间33与备用内存空间34时,对切换操作和搜索引擎30的搜索操作加互斥锁。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
权利要求
1.一种搜索系统索引切换的方法,其特征在于,在搜索服务器中预设用于存储索引信息的主目录和备用目录以及加载索引信息的主内存空间和备用内存空间,搜索服务器根据主目录中和主内存空间中的索引信息进行搜索操作;在进行索引切换时将索引服务器生成的新索引信息拷贝到备用目录中并加载到备用内存空间中,之后将主目录和备用目录相互切换,并将主内存空间和备用内存空间相互切换。
2.根据权利要求1所述的方法,其特征在于,所述将主目录和备用目录相互切换的具体方法为将主目录的名称和备用目录的名称相互交换。
3.根据权利要求1所述的方法,其特征在于,所述索引信息包括索引、属性过滤表、和内存索引表。
4.根据权利要求3所述的方法,其特征在于,该方法进一步包括根据索引信息的大小来设定合适的索引切换时间。
5.根据权利要求3所述的方法,其特征在于,所述在内存中加载的索引信息为属性过滤表和内存索引表;所述将主内存空间和备用内存空间相互切换的具体方法为交换主内存空间和备用内存空间中属性过滤表的内存首地址,交换主内存空间和备用内存空间中内存索引表的内存首地址。
6.根据权利要求1所述的方法,其特征在于,对所述主目录和备用目录相互切换、主内存空间和备用内存空间相互切换的操作与所述搜索操作加互斥锁保护。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述的搜索系统为电子商务的商品全文检索系统。
8.根据权利要求7所述的方法,其特征在于,所述的索引服务器生成新索引信息的具体方法为(1)为一篇文档生成倒排索引数据;(2)进行内存索引合并,合并内存中的一批文档,生成一个更大的数据段,将该段存于磁盘;(3)索引优化,重新生成新的优化后的索引;(5)生成商品的属性过滤表;(6)生成商品的内存索引表。
9.一种搜索系统,包括索引服务器、中转服务器和搜索服务器,其特征在于,该搜索服务器中设置有用于存放索引信息的主目录和备用目录,以及主内存空间和备用内存空间,搜索服务器根据主目录和主备用内存空间中的索引信息进行搜索操作;搜索服务器中还包括索引切换单元,用于从索引服务器中拷贝新生成的索引信息到备用目录,并加载到备用内存空间,然后切换主目录和备用目录,同时切换主内存空间和备用内存空间。
10.根据权利要求9所述的搜索系统,其特征在于,所述索引切换单元进一步包括互斥锁单元,用于在切换主目录和备用目录以及主内存空间与备用内存空间时,对切换操作和搜索引擎的搜索操作加互斥锁。
11.根据权利要求9所述的搜索系统,其特征在于,所述索引服务器进一步包括记录更新、优化索引数据、属性过滤表和内存索引表生成以及数据拷贝的功能单元。
全文摘要
本发明公开了一种搜索系统中索引切换的方法,在搜索服务器中预设用于存储索引信息的主目录和备用目录以及加载索引信息的主内存空间和备用内存空间,搜索服务器根据主目录中和主内存空间中的索引信息进行搜索操作;在进行索引切换时将索引服务器生成的新索引信息拷贝到备用目录中并加载到备用内存空间中,之后将主目录和备用目录相互切换,并将主内存空间和备用内存空间相互切换。还公开了一种基于上述方法的搜索系统,包括索引服务器、中转服务器和搜索服务器。本发明可以降低索引切换对搜索服务的影响,提高搜索服务的质量。
文档编号G06F17/30GK1975717SQ200510105279
公开日2007年6月6日 申请日期2005年11月28日 优先权日2005年11月28日
发明者陈厚道 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1