业务数据检索方法及装置与流程

文档序号:15695042发布日期:2018-10-19 18:54阅读:346来源:国知局
业务数据检索方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种业务数据检索方法及装置。



背景技术:

随着业务数据的不断累积,业务服务器中部署的传统关系型数据库在处理海量业务数据时,检索效率明显降低。

为此,提出了利用第三方搜索引擎(例如solr、lucene、elasticsearch等等)进行业务数据的检索,然而,由于第三方搜索引擎本身较为复杂,而且无法直接集成于现有的业务系统还需要加以改造,虽然检索效率有所提高,但是耗费了开发人员大量的时间和精力,并不利于降低开发成本。

由上可知,如何在不提高开发成本的前提下提高业务数据的检索效率仍亟待解决。



技术实现要素:

为了解决上述技术问题,本发明的一个目的在于提供一种业务数据检索方法及装置。

其中,本发明所采用的技术方案为:

一种业务数据检索方法,检索服务器为业务服务器中的业务数据预先创建了索引文件,以供部署于所述检索服务器的搜索引擎对所述索引文件进行全文检索,所述方法包括:获取检索参数,所述检索参数用于指示请求检索的业务数据;将所述检索参数封装至预先创建的检索参数对象,所述检索参数对象是所述搜索引擎进行全文检索所支持调用的对象;根据所述检索参数对象请求所述检索服务器调用所述搜索引擎;接收所述搜索引擎根据所述检索参数对象中的检索参数对所述索引文件进行全文检索而返回的业务数据。

一种业务数据检索装置,检索服务器为业务服务器中的业务数据预先创建了索引文件,以供部署于所述检索服务器的搜索引擎对所述索引文件进行全文检索,所述装置包括:参数获取模块,用于获取检索参数,所述检索参数用于指示请求检索的业务数据;参数封装模块,用于将所述检索参数封装至预先创建的检索参数对象,所述检索参数对象是所述搜索引擎进行全文检索所支持调用的对象;请求检索模块,用于根据所述检索参数对象请求所述检索服务器调用所述搜索引擎;结果接收模块,用于接收所述搜索引擎根据所述检索参数对象中的检索参数对所述索引文件进行全文检索而返回的业务数据。

一种业务数据检索装置,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的业务数据检索方法。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的业务数据检索方法。

在上述技术方案中,检索服务器为业务服务器中的业务数据预先创建索引文件,以供部署于检索服务器的搜索引擎对索引文件进行全文检索,进而提高业务数据的检索效率,同时,在搜索引擎基础上进行检索参数的封装,以此避免搜索引擎过于复杂的问题。

具体而言,获取用于指示请求检索的业务数据的检索参数,并将此检索参数封装至预先创建的检索参数对象,进而根据此检索参数对象请求检索服务器调用检索引擎,以接收检索引擎根据检索参数对象中的检索参数对索引文件进行全文检索而返回的业务数据,由于检索参数对象是搜索引擎进行全文检索所支持调用的对象,因此,对于开发人员而言,再不必关注搜索引擎是如何运行的,而只需要向检索参数对象提供检索参数,即可通过检索参数对象的调用而直接调用搜索引擎进行业务数据的检索,从而有效地提高了业务数据的检索效率,同时避免过高的开发成本。

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

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。

图1是根据本发明所涉及的实施环境的示意图。

图2是根据一示例性实施例示出的一种电子设备的硬件结构框图。

图3是根据一示例性实施例示出的一种业务数据检索方法的流程图。

图4是图3对应实施例中步骤310在一个实施例的流程图。

图5是根据一示例性实施例示出的另一种业务数据检索方法的流程图。

图6是根据一示例性实施例示出的另一种业务数据检索方法的流程图。

图7是根据一示例性实施例示出的另一种业务数据检索方法的流程图。

图8是根据一示例性实施例示出的一种业务数据检索方法的流程图。

图9是一应用场景中搜索引擎框架的系统架构示意图。

图10是一应用场景中一种业务数据检索方法的具体实现示意图。

图11是根据一示例性实施例示出的一种业务数据检索装置的框图。

通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述,这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1为一种业务数据检索方法所涉及的实施环境的示意图。该实施环境包括检索服务器110、业务服务器130和业务数据检索装置150。

其中,业务数据检索装置150可以部署于检索服务器110,也可以部署于能够与检索服务器110交互的其他任何电子设备170,例如笔记本电脑等等,为开发人员提供基于检索引擎的全文检索服务。此业务数据检索装置150可以是应用程序,还可以是开发工具包(sdk),在此并未加以限定。

检索服务器110与业务服务器130预先建立无线或者有线的网络连接,通过此网络连接以便于检索服务器110为业务服务器130中的业务数据预先创建索引文件。

进一步地,业务数据检索装置150根据请求检索的业务数据向检索服务器110发起请求,以请求检索服务器110调用搜索引擎111。

对于检索服务器110而言,便可调用搜索引擎111对索引文件进行全文检索,以向业务数据检索装置150返回请求检索的业务数据。

应当说明的是,根据实际营运的需要,检索服务器110和业务服务器130也可以整合在同一服务器集群,使得业务数据检索由该同一服务器集群完成。

图2是根据一示例性实施例示出的一种电子设备的硬件结构框图。需要说明的是,该电子设备只是一个适配于本发明的示例,不能认为是提供了对本发明的使用范围的任何限制。该电子设备也不能解释为需要依赖于或者必须具有图2中示出的示例性的电子设备200中的一个或者多个组件。

该电子设备200的硬件结构可因配置或者性能的不同而产生较大的差异,如图2所示,电子设备200包括:电源210、接口230、至少一存储器250、以及至少一中央处理器(cpu,centralprocessingunits)270。

其中,电源210用于为电子设备200上的各硬件设备提供工作电压。

接口230包括至少一有线或无线网络接口231、至少一串并转换接口233、至少一输入输出接口235以及至少一usb接口237等,用于与外部设备通信。

存储器250作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统251、应用程序253及数据255等,存储方式可以是短暂存储或者永久存储。其中,操作系统251用于管理与控制电子设备200上的各硬件设备以及应用程序253,以实现中央处理器270对海量数据255的计算与处理,其可以是windowsservertm、macosxtm、unixtm、linuxtm、freebsdtm等。应用程序253是基于操作系统251之上完成至少一项特定工作的计算机程序,其可以包括至少一模块(图2中未示出),每个模块都可以分别包含有对电子设备200的一系列计算机可读指令。数据255可以是存储于磁盘中的照片、图片等。

中央处理器270可以包括一个或多个以上的处理器,并设置为通过总线与存储器250通信,用于运算与处理存储器250中的海量数据255。

如上面所详细描述的,适用本发明的电子设备200将通过中央处理器270读取存储器250中存储的一系列计算机可读指令的形式来完成业务数据检索方法。

此外,通过硬件电路或者硬件电路结合软件也能同样实现本发明,因此,实现本发明并不限于任何特定硬件电路、软件以及两者的组合。

请参阅图3,在一示例性实施例中,一种业务数据检索方法适用于图1所示实施环境的业务数据检索装置,该业务数据检索装置所部署电子设备(例如检索服务器)的硬件结构可以如图2所示。

该种业务数据检索方法可以由业务数据检索装置执行,可以包括以下步骤:

步骤310,获取检索参数。

其中,检索参数用于指示请求检索的业务数据。

如前所述,检索服务器为业务服务器中的业务数据预先创建了索引文件,以供部署于检索服务器的搜索引擎对索引文件进行全文检索,应当理解,搜索引擎对索引文件进行全文检索是针对开发人员请求检索的业务数据。由此,在进行全文检索之前,需要获知开发人员请求检索的业务数据。

具体而言,业务数据检索装置将为开发人员提供一检索入口,如果开发人员需要进行业务数据的检索,便可以通过此检索入口触发相关操作,进而使得业务数据检索装置获得检索参数,以此指示请求检索的业务数据。

步骤330,将检索参数封装至预先创建的检索参数对象。

其中,检索参数对象是搜索引擎进行全文检索所支持调用的对象。

如前所述,搜索引擎本身较为复杂,而且需要加以改造方可与现有的业务系统融合,例如,对搜索引擎自身所配置的对象加以扩展等等,这并不利于降低开发成本。

为此,本实施例中,预先创建检索参数对象,此检索参数对象是搜索引擎进行全文检索所支持调用的对象。也可以理解为,检索参数对象区别于搜索引擎自身所配置的对象,是按照搜索引擎所支持的语法规则额外创建的,以此避免对搜索引擎自身及其所配置的对象加以改造,进而使得开发人员不再需要关注搜索引擎的具体运行。

在完成检索参数对象的创建之后,便可根据检索参数对象对检索参数进行封装,由此,通过检索参数对象的调用,其所封装的检索参数即可传入搜索引擎,使得搜索引擎按照此检索参数对索引文件进行全文检索进而返回检索参数所指示的业务数据。

步骤350,根据检索参数对象请求检索服务器调用搜索引擎。

如前所述,检索参数对象是搜索引擎进行全文检索所支持调用的对象,因此,检索服务器不必基于搜索引擎自身所配置的对象,而是通过检索参数对象的调用直接调用搜索引擎进行业务数据的检索。

步骤370,接收搜索引擎根据检索参数对象中的检索参数对索引文件进行全文检索而返回的业务数据。

对于搜索引擎而言,将获得检索参数对象所封装的检索参数,进而按照此检索参数对索引文件进行全文检索,即可检索到此检索参数指示的业务数据,并返回至业务数据检索装置。

基于此,业务数据检索装置便可接收到请求检索的业务数据,完成业务数据的检索。

通过如上所述的过程,通过搜索引擎的引入大大提高了传统关系型数据库处理海量业务数据的能力,进而有效地提高了业务数据的检索效率。

此外,开发人员不必改造搜索引擎即可实现搜索引擎与现有业务系统的快速融合,简单且高效。

请参阅图4,在一示例性实施例中,步骤310可以包括以下步骤:

步骤311,根据触发进行的关键字输入操作获得检索关键字。

如前所述,为了获得检索参数,业务数据检索装置将为开发人员提供一检索入口,以便于开发人员通过此检索入口触发相关操作指示业务数据检索装置所请求检索的业务数据。

例如,检索入口为一输入对话框,相应地,如果开发人员需要进行业务数据的检索,便在此输入对话框中输入与业务数据相关的检索关键字,则此关键字输入操作即为开发人员在检索入口触发进行的相关操作。

步骤313,判断检索关键字是否包含中文。

如果是,则跳转执行步骤315。

步骤315,调用中文分词插件对检索关键字进行中文分词,得到检索参数。

应当说明的是,搜索引擎自身配置的原生分词插件是针对字符而言的,例如,检索关键字为“smarttv”,那么,通过原生分词插件的调用,搜索引擎即可获知请求检索的业务数据与“smart”和/或“tv”有关,进而根据“smart”和/或“tv”检索相关的业务数据,以此保证业务数据检索的准确性。

然而,如果检索关键字包含中文,例如,“智能电视机”,则搜索引擎无法对此检索关键字进行文本分析,那么,进行全文检索时仅会针对“智能电视机”,而忽略了与“智能”或“电视机”相关的业务数据,这可能影响业务数据检索的准确性。

为此,本实施例中,为搜索引擎配置中文分词插件,例如,ik分词器,以使搜索引擎能够调用此中文分词插件对检索关键字进行文本分析,由此得到指示请求检索业务数据的检索参数。

假设检索关键字为“智能电视机”,则检索参数包括“智能电视机”、“智能”、“电视机”。

在上述实施例的作用下,搜索引擎支持中文分词,为全文检索提供了足够的检索参数,进而有利于保证业务数据检索的准确性。

请参阅图5,在一示例性实施例中,步骤350之前,如上所述的方法还可以包括以下步骤:

步骤410,获取检索条件。

可以理解,检索引擎按照检索参数所返回的业务数据可能不止一个,因此,检索条件,实质上是为了对检索引擎所返回的业务数据进行过滤、以及如何返回业务数据而设置的条件。

其中,检索条件包括但不限于:是否高亮、高亮对象、高亮前置/后置、排序、过滤域、返回开始行数、返回行数、显示行数、总页数、是否聚合等等。

为此,业务数据检索装置将为开发人员提供一设置入口,如果开发人员需要过滤业务数据,和/或,指定业务数据返回的方式等,便可以通过此设置入口触发相关操作,以使搜索引擎返回的业务数据满足检索条件。

步骤430,将检索条件添加至检索参数对象,以使搜索引擎返回的业务数据满足检索参数对象中的检索条件。

随着检索条件被添加,当检索参数对象调用时,此检索条件即可传入搜索引擎,使得搜索引擎按照此检索条件对由全文检索得到的业务数据进行过滤和返回。

例如,检索条件包括是否高亮,则搜索引擎返回的业务数据中,与检索关键字相符合的内容即显示为高亮。

又或者,检索条件包括显示行数为10行,则搜索引擎返回的业务数据,在电子设备所提供的显示屏幕中将以每页10行的方式进行显示。

通过上述过程,搜索引擎所返回的业务数据是与开发人员的实际需求相符合的,进一步保证了业务数据检索的准确性。

请参阅图6,在一示例性实施例中,步骤350之前,如上所述的方法还可以包括以下步骤:

步骤510,调用服务启动接口进行检索服务器参数配置。

步骤530,在完成参数配置的检索服务器中启动全文检索服务,以使检索服务器能够调用搜索引擎对索引文件进行全文检索。

应当理解,服务启动是为了检索服务器能够执行相应的功能,由于检索服务器需要执行的功能很多,为了保证检索服务器的开机效率,并非所有服务都随着检索服务器的开机而启动。换而言之,检索服务器可以在需要执行某个功能时,方才启动相应的服务。

基于此,全文检索服务启动,是为了检索服务器能够执行业务数据检索功能,即调用搜索引擎对索引文件进行全文检索。

当检索服务器需要启动全文检索服务,将通过服务启动接口的调用使检索服务器参数传入业务数据检索装置,进而在业务数据检索装置中完成检索服务器参数配置,以告知业务数据检索装置与其交互的是哪个检索服务器。其中,检索服务器参数包括但不限于:检索服务器名称、检索服务器域名、检索服务器ip地址等等。

待完成检索服务器参数配置,业务数据检索装置便能够与检索服务器交互,即请求检索服务器调用搜索引擎执行业务数据检索功能。

在上述过程中,通过服务启动模式控制搜索引擎的调用,有利于提高检索服务器的处理效率,避免不必要的内存损耗。

请参阅图7,在一示例性实施例中,步骤350之前,如上所述的方法还可以包括以下步骤:

步骤610,对查询接口进行监听,通过监听查询接口建立与检索服务器之间的传输连接。

步骤630,通过建立的传输连接向检索服务器发起携带检索参数对象的请求。

查询接口,用于在业务数据检索装置与检索服务器之间建立传输连接,以实现业务数据检索装置与检索服务器之间的数据传输。

基于建立的传输连接,业务数据检索装置将根据检索参数对象向检索服务器发起请求,以使检索服务器响应此请求而调用搜索引擎,进而返回搜索引擎由全文检索得到的业务数据。

值得一提的是,无论是服务启动接口还是查询接口,均是业务数据检索装置提供的api接口,使得检索服务器通过此api接口的调用,为业务数据检索装置执行相应的功能。

请参阅图8,在一示例性实施例中,如上所述的方法还可以包括以下步骤:

步骤710,在业务服务器更新业务数据时,检索服务器向预先创建的索引表添加变更信息。

其中,变更信息用于记录业务数据在业务服务器中的更新。

应当理解,在搜索引擎对索引文件进行全文检索时,如果业务服务器中的业务数据更新,开发人员需要保持索引文件和业务数据的一致性,在此过程中,开发人员需要主动识别业务服务器中业务数据是否发生了更新,这不仅增加了开发人员的工作压力,而且存在更新被遗漏的风险,难以保证业务数据检索的准确性。

为此,本实施例中,在检索服务器中预先创建索引表,此索引表是变更信息的集合,通过索引表中的变更信息即可获知业务服务器中业务数据进行了哪些更新,此更新包括但不限于业务数据的新增、删除、修改等等。

对于业务服务器而言,可以通过触发器定时上报业务数据的更新,也可以随着业务数据的更新实时上报,在此并不进行限定。

步骤730,当监控到索引表中添加了变更信息,则根据变更信息对索引文件进行同步更新处理。

由此,随着变更信息的添加,检索服务器将及时地获知业务服务器中业务数据进行了哪些更新,进而将业务数据所进行的更新同步至索引文件,以此保证索引文件和业务数据的一致性。

在上述实施例的作用下,实现了检索服务器通过变更信息主动进行索引文件的同步更新,避免人工实现,不仅提高了更新效率,而且充分保障了业务数据检索的准确性。

此外,开发人员不再考虑索引文件的同步更新,只需要向检索参数对象提供检索参数和/或检索条件,进一步有利于降低开发成本。

图9~图10是一应用场景中一种业务数据检索方法的具体实现示意图。该应用场景中,搜索引擎框架包括业务服务器801、检索服务器802、以及部署于检索服务器802的业务数据检索装置803。其中,检索服务器802中还部署了solr搜索引擎804。

如图10所示,业务服务器作为“数据源”805提供海量的业务数据806,而检索服务器则基于所部署的solr搜索引擎804,为海量的业务数据806创建索引文件807,以供solr搜索引擎804进行业务数据检索。

对于作为用户808的开发人员而言,将通过业务数据检索装置803向检索服务器发起请求,以调用solr搜索引擎804对索引文件807进行全文检索,并最终得到solr搜索引擎804返回的业务数据。

在本应用场景中,实现了基于solr搜索引擎的业务数据检索,可将100万条业务数据的模糊检索的平均响应时间由30s缩短至1s,大大提升了业务数据的检索效率。

此外,就开发人员来说,其是与业务数据检索装置直接交互的,对于业务数据检索装置与检索服务器之间的交互无感知,进而有利于提升检索体验。

下述为本发明装置实施例,可以用于执行本发明所涉及的业务数据检索方法。对于本发明装置实施例中未披露的细节,请参照本发明所涉及的业务数据检索方法的方法实施例。

请参阅图11,在一示例性实施例中,一种业务数据检索装置900包括但不限于:参数获取模块910、参数封装模块930、请求检索模块950和结果接收模块970。

其中,参数获取模块910用于获取检索参数,检索参数用于指示请求检索的业务数据。

参数封装模块930用于将检索参数封装至预先创建的检索参数对象,检索参数对象是搜索引擎进行全文检索所支持调用的对象。

请求检索模块950用于根据检索参数对象请求检索服务器调用搜索引擎。

结果接收模块970用于接收搜索引擎根据检索参数对象中的检索参数对索引文件进行全文检索而返回的业务数据。

在一示例性实施例中,所述参数获取模块910包括但不限于:关键字获取单元、关键字判断单元和中文分词单元。

其中,关键字获取单元,用于根据触发进行的关键字输入操作获得检索关键字。

关键字判断单元,用于判断所述检索关键字是否包含中文。如果是,则通知中文分词单元。

中文分词单元,用于调用中文分词插件对所述检索关键字进行中文分词,得到所述检索参数。

在一示例性实施例中,如上所述的装置900还包括但不限于:检索条件获取模块和检索条件添加模块。

其中,检索条件获取模块,用于获取检索条件。

检索条件添加模块,用于将所述检索条件添加至所述检索参数对象,以使所述搜索引擎返回的业务数据满足所述检索参数对象中的检索条件。

在一示例性实施例中,如上所述的装置900还包括但不限于:接口调用模块和服务启动模块。

其中,接口调用模块,用于调用服务启动接口进行检索服务器参数配置。

服务启动模块,用于在完成参数配置的所述检索服务器中启动全文检索服务,以使所述检索服务器能够调用所述搜索引擎对所述索引文件进行全文检索。

在一示例性实施例中,如上所述的装置900还包括但不限于:接口监听模块和请求发起模块。

其中,接口监听模块,用于对查询接口进行监听,通过监听所述查询接口建立与所述检索服务器之间的传输连接。

请求发起模块,用于通过建立的所述传输连接向所述检索服务器发起携带所述检索参数对象的请求。

在一示例性实施例中,如上所述的装置900还包括但不限于:信息添加模块和同步更新模块。

其中,信息添加模块,用于在所述业务服务器更新业务数据时,所述检索服务器向预先创建的索引表添加变更信息,所述变更信息用于记录业务数据在所述业务服务器中的更新。

同步更新模块,用于当监控到所述索引表中添加了所述变更信息,则根据所述变更信息对所述索引文件进行同步更新处理。

需要说明的是,上述实施例所提供的业务数据检索装置在进行业务数据检索时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即业务数据检索装置的内部结构将划分为不同的功能模块,以完成以上描述的全部或者部分功能。

另外,上述实施例所提供的业务数据检索装置与业务数据检索方法的实施例属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。

在一示例性实施例中,一种业务数据检索装置,包括处理器及存储器。

其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现上述各实施例中的业务数据检索方法。

在一示例性实施例中,一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例中的业务数据检索方法。

上述内容,仅为本发明的较佳示例性实施例,并非用于限制本发明的实施方案,本领域普通技术人员根据本发明的主要构思和精神,可以十分方便地进行相应的变通或修改,故本发明的保护范围应以权利要求书所要求的保护范围为准。

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