一种索引和搜索方法

文档序号:6381607阅读:197来源:国知局
专利名称:一种索引和搜索方法
技术领域
本发明涉及大数据存储领域,特别涉及云存储环境下的一种索引和搜索方法。
背景技术
当前很多软件系统都提供基于全文检索的搜索服务。全文检索是一种将所有文本与检索项匹配的文字资料检索方法,需要对文本进行分词,将分词结果生成倒排表,插入索引库当中,用户通过访问索引库搜索到该数据。因为将倒排表写入索引库的操作比较耗时,当高并发情况下,会很大程度上影响搜索操作的性能和数据的实时性。 传统解决快速索引的方法,当同时并发产生搜索和索引操作时,索引操作为了不影响搜索操作,会在原有的索引库上产生新的索引分片,但是这样做会产生两个问题索引分片会越来越多;分片越多搜索速度就越慢,如果需要对分片进行合并,即对索引合并时,又会大大影响搜索的性能。当索引库有更新后,需要重新获取搜索实例,才能得到实时的最新搜索数据,但是随着索引库的不断增大,产生一个搜索实例是需要很大开销的。

发明内容
有鉴于此,本发明实施例提供一种索引和搜索方法,以实现高并发情况下的数据快速索引和搜索。本发明实施例提供的一种索引和搜索方法,包括建立至少两级索引库;由所述至少两级索引库同时提供索引服务,并将从所述至少两级索引库得到的搜索列表进行合并。本发明实施例提供的方法中,将索引库分为多层索引库,多层索引库协同工作,实现在快速索引的同时还能提供闻效实时的搜索服务。


图I是本发明实施例中一种索引和搜索方法的流程示意图。图2所示为本发明实施例中包含有主备切换的索引和搜索方法的流程示意图。图3所示为本发明另一实施例中包含有主备切换的索引和搜索方法的流程示意图。图4所示为本发明另一实施例中包含有主备切换的索引和搜索方法的流程示意图。图5所示为本发明另一实施例中包含有主备切换的索引和搜索方法的流程示意图。图6所示为本发明另一实施例中包含有主备切换的索引和搜索方法的流程示意图。
图7所示为本发明另一实施例中包含有主备切换的索引和搜索方法的流程示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。本发明实施例提供一种索引和搜索方法,通过建立至少两个以上的索引库,由所述至少两个以上的索引库同时提供索引服务,并将从所述至少两个以上的索引库得到的搜索列表进行合并。其中,还可以进一步为所述至少两个以上的索引库分别提供备 份索引库,利用所述备份索引库实现索引数据在所述至少两个以上索引库之间的转移。图I是本发明实施例中一种索引和搜索方法的流程示意图。如图I所示,在本发明实施例中,将整个索引库分为三层,分别为一级索引库、二级索引库和三级索引库,三层索引库分别存储不同的索引数据,最终组成一个完整的索引库,当有搜索操作时,由三层索引库同时提供搜索服务,将三层索引库中得到的搜索列表进行合并,之后对列表中的文档进行统一评分和排序,将最终结果返回给用户。一级索引库,将索引数据存放到内存当中,也可称之为内存索引库,该内存索引所存储的索引数通常较少。在本发明一实施例中,可将内存索引所存储的索引量阈值设置在I万。由于内存索引库位于内存中,减小了 IO负荷,因此可以快速响应索引/搜索操作。由于内存索引库中存放的索引数据是很少的,因此只会产生少量的索引分片,对搜索性能的影响可以忽略不计。同时由于内存中的索引数据较少,因此产生一个新的搜索实例的开销同样很小,可以实时的产生新的搜索实例,保证搜索结果的实时性。当内存索引库中的索引数据达到阈值时,自动触发事件,将内存索引库中的索引数据逐条写入二级索引库,并将这些索引数据从内存索引库中删除。二级索引库的存储的数据阈值比内存索引库稍大。在本发明一实施例中,可以设置为10万左右的索引。内存索引库将索引数据导入二级索引库后,二级索引库会进行索引分片合并操作,保证二级索引库不会存在索引分片,保证高效的搜索。二级索引库可以同时建立多个搜索实例来构建搜索实例池提供高效的搜索响应,当内存索引库将索引数据导入二级索引库后更新池中所有搜索实例来保证数据的实时性。当二级索引库中的索引数据达到阈值后,自动触发事件,将二级索引库中的索引逐条导入三级索引库,并在二级索引库中删除这些数据。如果二级索引库中的索引数据没有达到阈值,程序也会定时的将二级索引库中的索引导入三级索引库。由于三级索引库数据量很大,索引更新频率很慢,因此可以采用单实例的方式提供搜索服务,这样可以避免频繁产生搜索实例所带来的性能开销。由于三级索引库的索引更新频率很慢,所以不会产生索引分片,因此可以提供高效的搜索相应。从上述实施例中可以看出,内存索引库与二级索引库,二级索引库与三级索引库都存在索引合并操作,二级索引库内部也会有索引分片合并操作。在索引合并的过程中,索引库是无法对外提供高效的搜索服务的。为了使得索引库在分片合并的同时,还可以对外提供搜索服务,本发明实施例提供了一种主备切换的工作模式。
图2所示为本发明实施例中包含有主备切换的索引和搜索方法的流程示意图。如图2所示,为每层索引库都建立主、备两个索引库,即一级主索引库、一级备索引库,二级主索引库、二级备索引库、三级主索引库、三级备索引库。默认情况下由一级主索引库、二级主索引库、三级主索引库对外提供搜索服务。如图3所示。当有新索引数据产生后,首先将索引数据同时写入一级主索引库和一级备索引 库;当一级索引库中的数据条数超过阈值时,切换至一级备索引库提供搜索服务,将一级主索引库中的索引数据逐条写入二级备索引库,然后对二级备索引库进行索引分片合并。具体如图4所示。合并操作完成后,切换回一级主索引库提供搜索服务,同时切换二级备索引库提供搜索服务,将一级备索引库的索引数据逐条写入二级主索引库,然后对二级主索引库进行索引分片合并,具体如图5所示。合并操作完成后,切换回二级主索引库提供搜索服务。当二级索引库中的数据条数超过阈值时,切换至二级备索引库提供搜索服务,将二级主索引库中的索引数据逐条写入三级备索引库,具体如图6所示。此操作完成后,切换回二级主索引库提供搜索服务,同时切换三级备索引库提供搜索服务,将二级备索引库的索引数据逐条写入三级主索引库,具体如图7所示。此操作完成后,切换回三级主索引库提供搜索服务。用户搜索时,同时从一级索引库、二级索引库、三级索引库中获得实例,将三层索引库的搜索结果进行归并返回给用户。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。
权利要求
1.一种索引和搜索方法,其特征在于,包括 建立至少两级索引库;由所述至少两级索引库同时提供索引服务,并将从所述至少两级索引库得到的搜索列表进行合并。
2.如权利要求I所述的方法,其特征在于,进一步包括为所述至少两级索引库分别提供备份索引库,利用所述备份索引库实现索引数据在所述至少两级索引库之间的转移。
3.如权利要求I所述的方法,其特征在于,其特征在于,所述至少两级索引库其中之一为内存索引库,所述内存索引库将索引数据存放在内存中。
4.如权利要求I至3任一所述的方法,其特征在于,为所述至少两级索引库分别设置一个索引数据存储阈值,一旦其中一索引库达到存储阈值,将所述一索引库的索引数据逐条写入其下一级索引库,并将其内的索引数据从所述一索引库中删除;或, 定期将其中一索引库的索引数据逐条写入其下一级索引库,并将其内的索引数据从所述一索引库中删除。
5.如权利要求4所述的方法,其特征在于,将所述其中一索引库的索引数据逐条写入其下一级索引库,并将其内的索引数据从所述一索引库中删除包括 为所述其中一索引库以及其下一级索引库分别建立备份索引库;初始状态下,搜索服务基于所述其中一索引库以及其下一级索引库; 将搜索服务切换至所述其中一索引库的备份索引库; 将所述其中一索引库的索引数据逐条写入其下一级索引库对应的备份索引库,并删除所述其中一索引库的索引数据; 将搜索服务切换至所述其中一索引库以及所述下一级索引库对应的备份索引库; 将所述其中一索引库对应的备份数据库的索引数据逐条写入其下一级索引库,并删除所述其中一索引库对应的备份数据库中的索引数据; 将搜索服务切换至所述下一级索引库。
6.如权利要求I所述的方法,其特征在于,所述至少两个以上的索引库包括内存主索引库、二级主索引库、三级主索引库。
7.如权利要求6所述的方法,其特征在于,进一步包括建立内存备索引库、二级备索引库、三级备索引库。
8.如权利要求7所述的方法,其特征在于,进一步包括当有新索引数据产生后,将所述索引数据同时写入一级主索引库和一级备索引库;当一级索引库中的数据条数超过阈值时,切换至一级备索引库提供搜索服务,将一级主索引库中的索引数据逐条写入二级备索引库,并将一级主索引库中的索引数据删除; 当一级主索引库中的索引数据全部写入二级备索引库时,切换回一级主索引库提供搜索服务,同时切换二级备索引库提供搜索服务,将一级备索引库的索引数据逐条写入二级主索引库,并将一级备索引库中的索引数据删除;操作完成后,切换回二级主索引库提供搜索服务。
9.如权利要求7或8所述的方法,其特征在于,当二级索引库中的索引数据超过阈值时,进一步包括 切换至二级备索引库提供搜索服务,将二级主索引库中的索引数据逐条写入三级备索引库,并将二级主索引库中的索引数据删除;操作完成后,切换回二级主索引库提供搜索服务,同时切换三级备索引库提供搜索服 务; 将二级备索引库的索引数据逐条写入三级主索引库,并将二级备索引库中的索引数据删除;操作完成后,切换回三级主索引库提供搜索服务。
全文摘要
本发明实施例提供了一种索引和搜索方法,以实现高并发情况下的数据快速索引和搜索。该方法包括建立至少两级索引库;由所述至少两级索引库同时提供索引服务,并将从所述至少两级索引库得到的搜索列表进行合并。
文档编号G06F17/30GK102968478SQ20121046691
公开日2013年3月13日 申请日期2012年11月19日 优先权日2012年11月19日
发明者邢浩 申请人:天津书生投资有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1