用于测试的索引生成方法、装置、系统及可读存储介质与流程

文档序号:11216182阅读:242来源:国知局
用于测试的索引生成方法、装置、系统及可读存储介质与流程

本发明涉及互联网技术领域,具体而言,涉及一种用于搜索引擎测试的索引生成方法、装置、搜索引擎测试系统及可读存储介质。



背景技术:

随着电商平台系统中商品数量的日益增长,对搜索引擎的要求越来越高,需要开发新的搜索引擎或不断完善现有搜索引擎的功能,以适应平台中商品数量的不断增长。在新的搜索引擎或搜索引擎的新功能上线之前,需要对其进行测试,如冒烟测试、回归测试及系统测试等。

在现有的搜索引擎测试过程中,通常采用全量索引。全量索引包含了电商平台中所有商品数据,在测试时,将其全部加载到测试服务器的内存中。但该做法有如下缺陷:

第一,测试服务器启动加载索引的时间过长,无法保证冒烟测试和回归测试的速度;

第二,由于服务器启动时间过长,无法进行需要频繁重启搜索服务器的系统测试;

第三,由于全量索引过大,对测试服务器的内存配置要求高。

在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

有鉴于此,本发明提供一种用于搜索引擎测试的索引生成方法、装置、搜索引擎测试系统及可读存储介质,能够在大幅降低索引大小的情况下,保证搜索引擎的测试指令,并为系统测试提供了条件。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明的一方面,提供一种用于搜索引擎测试的索引生成方法,包括:获取统一资源定位符列表;根据统一资源定位符列表,获得数据的标识码列表;以及根据数据的标识码列表,生成定制化索引。

根据本发明的一些实施例,获取统一资源定位符列表包括:提取搜索频率最高的若干搜索词;以及从若干搜索词中获取统一资源定位符列表。

根据本发明的一些实施例,获取统一资源定位符列表包括:根据搜索引擎测试需求,获取统一资源定位符列表。

根据本发明的一些实施例,数据包括商品数据,根据数据的标识码列表,生成定制化索引包括:获取数据的标识码列表中各商品数据的信息;根据各商品数据的信息中的分类,获取各商品数据的标签字段;以及根据各商品数据的信息及标签字段,生成定制化索引。

根据本发明的一些实施例,根据各商品数据的信息及标签字段,生成定制化索引包括:根据数据的标识码列表中各商品数据的标识码,将数据的标识码列表中所有商品数据划分为多个哈希分片,每个哈希分片包含数据的标识码列表中部分商品数据的标识码;将多个哈希分片分配到多个服务器中;在多个服务器中,分别根据所分配的哈希分片中的商品数据的信息及标签字段,生成多个部分索引;以及将多个部分索引中的商品数据进行排序,以生成定制化索引。

根据本发明的一些实施例,上述方法还包括:将定制化索引发送至搜索引擎的测试设备,以根据定制化索引对搜索引擎进行测试。

根据本发明的另一方面,提供一种用于搜索引擎测试的索引生成装置,包括:定位符列表获取模块,用于获取统一资源定位符列表;标识码列表获取模块,用于根据统一资源定位符列表,获得数据的标识码列表;以及定制化索引生成模块,用于根据数据的标识码列表,生成定制化索引。

根据本发明的一些实施例,定位符列表获取模块包括:搜索词提取子模块,用于提取搜索频率最高的若干搜索词;以及第一定位符获取子模块,用于从若干搜索词中获取统一资源定位符列表。

根据本发明的一些实施例,定位符列表获取模块包括:第二定位符获取子模块,用于根据搜索引擎测试需求,获取统一资源定位符列表。

根据本发明的一些实施例,定制化索引生成模块包括:信息获取子模块,用于获取数据的标识码列表中各商品数据的信息;字段获取子模块,用于根据各商品数据的信息中的分类,获取各商品数据的标签字段;以及索引生成子模块,用于根据各商品数据的信息及标签字段,生成定制化索引。

根据本发明的一些实施例,索引生成子模块包括:哈希分片划分单元,用于根据数据的标识码列表中各商品数据的标识码,将数据的标识码列表中所有商品数据划分为多个哈希分片,每个哈希分片包含数据的标识码列表中部分商品数据的标识码;哈希分片分配单元,用于将多个哈希分片分配到多个服务器中;部分索引生成单元,用于在多个服务器中,分别根据所分配的哈希分片中的商品数据的信息及标签字段,生成多个部分索引;以及最终索引生成单元,用于将多个部分索引中的商品数据进行排序,以生成定制化索引。

根据本发明的一些实施例,上述装置还包括:定制化索引发送模块,用于将定制化索引发送至搜索引擎的测试设备,以根据定制化索引对搜索引擎进行测试。

根据本发明的又一方面,提供一种搜索引擎测试系统,包括:大数据集服务器,用于根据如上述任一种方法生成定制化索引;以及搜索引擎测试服务器,用于根据定制化索引对搜索引擎进行测试。

根据本发明的一些实施例,大数据集服务器为hadoop集群服务器。

根据本发明的再一方面,提供一种计算机设备,包括:存储器、处理器及存储在存储器中并可在处理器中运行的可执行指令,处理器执行可执行指令时实现如上述任一种方法。

根据本发明的再一方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,可执行指令被处理器执行时实现如上述任一种方法。

根据本发明实施方式的用于搜索引擎测试的索引生成方法,通过获取所需的统一资源定位符列表,获得相应的数据的标识码列表,从而生成定制化索引。因为无需根据所有数据制作全量索引,大大降低了索引的大小,减少了测试服务器加载索引的时间,因此可以快速完成冒烟测试和回归测试,完成代码迭代;并未系统测试的进行提供了条件。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。

图1是根一示例性实施方式示出的一种搜索引擎测试系统的结构图。

图2是根据一示例性实施方式示出的一种用于搜索引擎测试的索引生成方法的流程图。

图3是根据一示例性实施例示出的另一种用于搜索引擎测试的索引生成方法的流程图。

图4是根据一示例性实施例示出的又一种用于搜索引擎测试的索引生成方法的流程图。

图5是根据一示例性实施例示出的再一种用于搜索引擎测试的索引生成方法的流程图。

图6是根据一示例性实施例示出的再一种用于搜索引擎测试的索引生成方法的流程图。

图7是根据一示例性实施方式示出的一种用于搜索引擎测试的索引生成装置的框图。

图8是根据一示例性实施例示出的另一种用于搜索引擎测试的索引生成装置的框图。

图9是根据一示例性实施例示出的又一种用于搜索引擎测试的索引生成装置的框图。

图10是根据一示例性实施例示出的再一种用于搜索引擎测试的索引生成装置的框图。

图11是根据一示例示出的持续集成平台的示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本发明的各方面变得模糊。

图1是根一示例性实施方式示出的一种搜索引擎测试系统的结构图。如图1所示,该系统包括:大数据集(largedataset)服务器1及搜索引擎测试服务器2。

其中,大数据集服务器1用于生成搜索引擎服务器2测试时所需要的定制化索引。大数据集服务器1可以为hadoop集群服务器,或者也可以为单台服务器,本发明不以此为限。

hadoop是由apache基金会所开发的分布式系统基础架构,其可以使用户在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。hadoop的框架最核心的设计包括:hdfs(hadoopdistributedfilesystem,分布式文件系统)和mapreduce。hdfs为海量的数据提供了存储,mapreduce则为海量的数据提供了计算。

搜索引擎测试服务器2可以为单台服务器,也可以为多台服务器,从而分别完成不同的测试,如冒烟测试、回归测试及系统测试等。

图2是根据一示例性实施方式示出的一种用于搜索引擎测试的索引生成方法的流程图。如图2所示,方法10包括:

在步骤s102中,获取统一资源定位符列表。

统一资源定位符(uniformresourcelocator,url)是对可以从互联网上得到的资源和访问方法的一种简洁的表示,是互联网上标准资源的地址。在生成索引之前,首先要获取所需的统一资源定位符列表。

在步骤s104中,根据统一资源定位符列表,获得数据的标识码列表。

根据统一资源定位符列表获取的数据可以包括电商平台中待被搜索的商品数据,也可以包括待被网页搜索引擎搜索的网页数据,还可以包括待被文件搜索引擎搜索的文件数据等,本发明不以此为限。

获取数据后,将数据的标识码(id)组成数据的标识码列表。

数据的标识码用于唯一表示各条数据。例如,如果是商品数据,则数据的标识码用于唯一表示电商平台中待售的各商品。

搜索引擎的测试主要是通过搜索特定的词,检测返回的结果是否符合预期。使用通过url列表得到的相对应的特定数据组成的索引,可以保证在对搜索引擎测试时,通过搜索对应的词,触发搜索引擎的各个功能点。

在步骤s106中,根据数据的标识码列表,生成定制化索引。

根据数据的标识码列表中的各条数据,生成定制化索引。

根据本发明实施方式的用于搜索引擎测试的索引生成方法,通过获取所需的统一资源定位符列表,获得相应的数据的标识码列表,从而生成定制化索引。因为无需根据所有数据制作全量索引,大大降低了索引的大小,减少了测试服务器加载索引的时间,因此可以快速完成冒烟测试和回归测试,完成代码迭代;并未系统测试的进行提供了条件。

应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施方式。

图3是根据一示例性实施例示出的另一种用于搜索引擎测试的索引生成方法的流程图。图3中所示的各步骤为图2中的步骤s102提供了一种具体实施方法。如图3所示,步骤s102包括:

在步骤s1022中,提取搜索频率最高的若干搜索词。

可以从图1中的大数据集服务器1中提取近期搜索频率最高的(top)搜索词,例如可以提取1.5万个top搜索词,用于获取url列表。

在步骤s1024中,从提取的若干搜索词中获取url列表。

通过获取近期频率最高的热搜词来定制索引,可以保证对搜索引擎测试覆盖面的广度,保证测试质量。

图4是根据一示例性实施例示出的又一种用于搜索引擎测试的索引生成方法的流程图。图4中所示的各步骤为图2中的步骤s102提供了又一种具体实施方法。如图4所示,步骤s102包括:

在步骤s1022’中,根据搜索引擎测试需求,获取url列表。

通过根据测试需求定制url列表,可以满足对搜索引擎测试的不同需求,从而可以有效的触发对搜索引擎中各功能点的测试。

在一些实施例中,获取的url列表可以同时包括根据图3所示的方法及图4所示的方法所获得的url,从而同时满足测试广度及专用性的要求。

图5是根据一示例性实施例示出的再一种用于搜索引擎测试的索引生成方法的流程图。图5中所示的各步骤为图2中的步骤s106提供了一种具体实施方法。在本实施例中,上述数据包括电商平台中待售的商品数据,如图5所示,步骤s106包括:

在步骤s1062中,获取数据的标识码列表中各商品数据的信息。

例如,可以从大数据集服务器1的hive表中获取数据的标识码列表中各商品数据的信息,如名称、分类、价格、评论数等。hive表是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类sql查询功能。

在步骤s1064中,根据各商品数据的信息中的分类,获取各商品数据的标签字段。

商品数据的信息中包括各商品的分类,如服装类、电子产品类等。每种不同的类别对应的不的标签字段信息,如服装类商品数据中可包括的标签如颜色、款式等,电子类产品中可包括的标签如颜色、存储量大小等。这些标签字段在搜索过程中将决定商品数据的位置。

在步骤s1066中,根据各商品数据的信息及标签字段,生成定制化索引。

当大数据集服务器1为hadoop集群服务器时,上述生成定制化索引的操作例如可以通过大数据集服务器1中的hadoopmapreduce功能实现。

图6是根据一示例性实施例示出的再一种用于搜索引擎测试的索引生成方法的流程图。图6中所示的各步骤为图5中的步骤s1066提供了一种具体实施方法。如图6所示,步骤s1066包括:

在步骤s10662中,根据数据的标识码列表中各商品数据的标识码,将数据的标识码列表中所有商品数据划分为多个哈希分片,每个哈希分片包含数据的标识码列表中部分商品数据的标识码。

当大数据集服务器1为hadoop集群服务器时,由于受限于单台服务器的硬件限制,索引的大小需要控制在合理的范围内,因此需要对索引进行分片处理,即分布式生成索引。

在步骤s10664中,将多个哈希分片分配到多个服务器中。

将划分好的哈希分片分配到不同的单台服务器中,从而在不同服务器中生成适应其硬件资源大小的索引。

在步骤s10666中,在多个服务器中,分别根据所分配的哈希分片中的商品数据的信息及标签字段,生成多个部分索引。

在步骤s10668中,将多个部分索引中的商品数据进行排序,以生成定制化索引。

将多个部分索引中的商品数据进行正排或倒排序序列化,得到最终的定制化索引,其可以被搜索程序所识别,并对外提供搜索结果。

上述定制化索引的生成可以完全复用全量索引的生产程序,这样当生产全量索引的程序代码发生变更时,定制化索引也可以实时地相应更新。

在一些实施例中,方法10还可以包括步骤s108,在步骤s108中,将定制化索引发送至搜索引擎的测试设备,以根据定制化索引对搜索引擎进行测试。

定制化索引生成后,根据测试设备列表,将其自动推送到冒烟测试、回归测试及系统测试环境,如图1所示的搜索引擎测试服务器2中。在推送过程中,不会影响将要或正在进行的测试。推送成功后,将自动删除旧索引,保证测试设备的磁盘可用性。

测试服务器启动的过程,90%的时间用于加载索引,主要是花费在将索引读入内存中,索引被一条条读入加载。完整的索引大概在60gb左右,读入机器内存的过程耗时在15分钟以上,随着商品数量的增多会不断增长。但在冒烟测试、回归测试及异常测试中,往往需要服务器频繁重新启动,每一次重启都会耗时30分钟才可以进行测试。这在频繁迭代的开发模式中是无法接受的。而定制化索引可以根据需要测试的功能点选出特定的商品数据,触发对应的功能代码完成测试。经过定制的索引可以降低到3gb左右,这样可以在2分钟之内完成对服务器的重启,从而提高测试效率。因为商品数据可以触发所有功能点,这也可以有效的进行测试。

当使用定制化索引测试出稳定的代码版本后,最后再使用完整的索引进行全面的压力测试,有效的节省了前期的时间。例如可以快速检测出新版代码无法启动、功能无效等问题。

在冒烟测试中,将使用top20的搜索词进行基本的程序检测。在回归测试中,使用的测试url都已添加至生产定制化索引的url列表中,所以需要测试的功能均可以满足。在系统测试中,将完成搜索系统的管理节点测试。其中管理节点测试主要是针对各个服务节点进行的重启、删减、添加,包含大量索引服务器的启停操作。因为测试服务器可以在1分钟左右完成启动,是系统测试可以根据需求进行展开的前提条件。使用定制化索引将快速完成冒烟测试和回归测试,完成代码迭代;并使系统测试在搜索项目中得以开展。

根据本发明实施方式的用于搜索引擎测试的索引生成方法,在保证测试质量的前提下,可提高冒烟测试效率50%以上,将服务器启动时间降低到1分20秒;完善了持续集成过程,使系统测试得以完成;节省了服务器资源,冒烟测试和系统测试均替换为32gbdocker服务器。

本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由cpu执行的计算机程序。在该计算机程序被cpu执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。

图11是根据一示例示出的持续集成平台的示意图。如图11所示,基于图1所示的系统还可建立一架构于大数据集服务器1及搜索引擎服务器2上的易于使用的持续集成平台,用于监控集成中存在的问题,提供详细的日志文件和提醒功能,此外还能用图表的形式形象地展示项目构建的趋势和稳定性。如图11所示,该持续集成平台在大数据集服务器1中用于根据从大数据集中获取的数据来获得top搜索词,生成url列表,获取商品数据的信息,从而触发生成定制化索引。并将定制化索引部署到搜索引擎测试服务器2中,以在搜索引擎测试服务器中进行冒烟测试、回归测试、系统测试及模拟环境测试(stagingtest)。

此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。

图7是根据一示例性实施方式示出的一种用于搜索引擎测试的索引生成装置的框图。如图7所示,装置20包括:定位符列表获取模块202、标识码列表获取模块204及定制化索引生成模块206。

其中,定位符列表获取模块202用于获取统一资源定位符列表。

标识码列表获取模块204用于根据统一资源定位符列表,获得数据的标识码列表。

定制化索引生成模块206用于根据数据的标识码列表,生成定制化索引。

在一些实施例中,装置20还可以包括:定制化索引发送模块208,用于将定制化索引发送至搜索引擎的测试设备,以根据定制化索引对搜索引擎进行测试。

图8是根据一示例性实施例示出的另一种用于搜索引擎测试的索引生成装置的框图。与图7所示的装置20不同的之处在于,图8所示的装置30的定位符列表获取模块302包括:搜索词提取子模块3022及第一定位符获取子模块3024。

其中,搜索词提取子模块3022用于提取搜索频率最高的若干搜索词。

第一定位符获取子模块3024用于从若干搜索词中获取统一资源定位符列表。

图9是根据一示例性实施例示出的又一种用于搜索引擎测试的索引生成装置的框图。与图7所示的装置20不同的之处在于,图9所示的装置40的定位符列表获取模块402包括:第二定位符获取子模块4022,第二定位符获取子模块4022用于根据搜索引擎测试需求,获取统一资源定位符列表。

图10是根据一示例性实施例示出的再一种用于搜索引擎测试的索引生成装置的框图。与图7所示的装置20不同的之处在于,图10所示的装置50的定制化索引生成模块506包括:信息获取子模块5062、字段获取子模块5064及索引生成子模块5066。

其中,信息获取子模块5062用于获取数据的标识码列表中各商品数据的信息。

字段获取子模块5064用于根据各商品数据的信息中的分类,获取各商品数据的标签字段。

索引生成子模块5066用于根据各商品数据的信息及标签字段,生成定制化索引。

在一些实施例中,索引生成子模块5066可以包括:哈希分片分配单元、部分索引生成单元及最终索引生成单元。其中,哈希分片分配单元用于将多个哈希分片分配到多个服务器中。部分索引生成单元用于在多个服务器中,分别根据所分配的哈希分片中的商品数据的信息及标签字段,生成多个部分索引。最终索引生成单元用于将多个部分索引中的商品数据进行排序,以生成定制化索引。

需要注意的是,上述附图中所示的框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施方式的方法。

以上具体地示出和描述了本发明的示例性实施方式。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1