解析器生成方法、检索方法、服务器及存储介质与流程

文档序号:20772631发布日期:2020-05-19 20:26阅读:181来源:国知局
解析器生成方法、检索方法、服务器及存储介质与流程

本申请涉及互联网技术领域,尤其涉及一种解析器生成方法、检索方法、服务器以及存储介质。



背景技术:

大数据时代经过若干年的发展,文本数据的产生速度越来越快,数据量也急剧增长,由此方便人们从海量文本数据中获取更多想要的信息,而如何从海量文本数据中准确获取到所需的文本数据也变得尤为关键,为此,文本数据检索方式:全文检索方式得到了广泛的关注和应用。

全文检索方式是通过解析、召回和排序等过程实现文本数据检索的。其中,解析文本数据过程是全文检索重要步骤,直接决定了检索的完备度、准确度。



技术实现要素:

本申请的多个方面提供了一种解析器生成方法、检索方法、服务器以及存储介质,用以根据用户的不同需求自定义解析器,降低开发成本。

本申请实施例提供了一种解析器生成方法,所述方法包括:接收采用第一编程语言编写的解析组件描述文本,所述解析组件描述文本包含至少一个组件标识及其对应的解析参数;从采用第二编程语言编写的解析组件模板中,选择与所述至少一个组件标识分别对应的解析组件模板;根据所述至少一个组件标识对应的解析参数及解析组件模板,生成至少一个解析组件;对所述至少一个解析组件进行组合,得到用于面向采用所述第一编程语言编写的数据库语句进行解析的解析器。

本申请实施例还提供了一种服务器,包括:存储器、处理器以及通信组件;所述通信组件,用于;接收采用第一编程语言编写的解析组件描述文本,所述解析组件描述文本包含至少一个组件标识及其对应的解析参数;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:从采用第二编程语言编写的解析组件模板中,选择与所述至少一个组件标识分别对应的解析组件模板;根据所述至少一个组件标识对应的解析参数及解析组件模板,生成至少一个解析组件;对所述至少一个解析组件进行组合,得到用于面向采用所述第一编程语言编写的数据库语句进行解析的解析器。

本申请实施例还提供了一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述解析器生成方法中的步骤。

本申请实施例还提供了一种数据库检索方法,包括:接收检索设备发送的待检索文本;利用解析器中包含的至少一个解析组件对所述待检索文本进行解析处理,得到至少一个子文本;利用所述至少一个子文本在数据库中获取检索结果并返回给所述检索设备。

本申请实施例还提供了一种服务器,包括:存储器、处理器以及通信组件;所述通信组件,用于接收检索设备发送的待检索文本;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:利用解析器中包含的至少一个解析组件对所述待检索文本进行解析处理,得到至少一个子文本;利用所述至少一个子文本在数据库中获取检索结果;所述通信组件,用于将所述检索结果返回给所述检索设备。

本申请实施例还提供了一种存储有计算机程序的计算机可读存储介质,其特征在于,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述数据库检索方法中的步骤。

本申请实施例还提供了一种数据库检索方法,所述方法包括:获取待处理文本;利用解析器中包含的至少一个解析组件对所述待处理文本进行解析处理,得到至少一个子文本;根据所述至少一个子文本建立检索索引,生成数据库,以供数据检索。

本申请实施例还提供了一种服务器,包括:存储器、处理器以及通信组件;所述通信组件,用于获取待处理文本;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:利用解析器中包含的至少一个解析组件对所述待处理文本进行解析处理,得到至少一个子文本;根据所述至少一个子文本建立检索索引,生成数据库,以供数据检索。

本申请实施例还提供了一种存储有计算机程序的计算机可读存储介质,其特征在于,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述数据库检索方法中的步骤。

在本申请实施例中,通过开发用户熟悉的编程语言编写解析组件描述文本,根据其中的组件标识获取对应解析组件模板中,再根据解析组件描述文本中的解析参数来设置解析组件模板的参数,生成解析组件并得到解析器,使得开发用户无需去学习其他编程语言来编写解析组件描述文本,就可以设置解析组件模板的参数,降低了开发用户的学习成本以及解析组件的开发成本,同时,开发用户可以根据不同需求来设置不同的解析参数,得到不同需求的解析组件以及解析器,提高解析器的灵活性以及普适性。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1a为本申请一示例性解析器生成工具所部署的网络系统的结构示意图;

图1b为本申请又一示例性解析器所部署的网络系统的结构示意图;

图2为本申请一示例性实施例的解析器生成方法的流程示意图;

图3为本申请一示例性实施例提供的得到组件标识以及解析参数的流程示意图;

图4为本申请一示例性实施例的数据库检索方法的流程示意图;

图5为本申请又一示例性实施例的数据库检索方法的流程示意图;

图6为本申请一示例性实施例提供的解析器生成装置的结构框架示意图;

图7为本申请一示例性实施例提供的生成模块的结构框架示意图;

图8为本申请一示例性实施例提供的数据库检索装置的结构框架示意图;

图9为本申请又一示例性实施例提供的数据库检索装置的结构框架示意图;

图10为本申请一示例性实施例提供的服务器的结构示意图;

图11为本申请又一示例性实施例提供的服务器的结构示意图;

图12为本申请另一示例性实施例提供的服务器的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

全文检索是指数据库中的索引程序通过扫描文本中的每一个词,对每一个词建立一个索引,指明该词在文本中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式,从而达到搜索相对较快的目的。其中,文本可以包括书籍、标题、新闻、论文等非结构化数据,全文检索一般分为三个主要构成部分:解析、召回、排序。其中,解析过程是全文检索的核心步骤,直接决定了检索的完备度、准确度;而解析过程需要通过解析器来实现将文本根据语义,解析为多个独立的词语,从而进行召回和排序过程,然而由于不同的服务需求,需要设置不同的解析器来进行解析,同时,解析器的设置方法还需要与数据库的主流开发语言进行兼容。

在本申请一些实施例中,通过开发用户熟悉的编程语言编写解析组件描述文本,根据其中的组件标识获取对应解析组件模板中,再根据解析组件描述文本中的解析参数来设置解析组件模板的参数,生成解析组件并得到解析器,使得开发用户无需去学习其他编程语言来编写解析组件描述文本,就可以设置解析组件模板的参数,降低了开发用户的学习成本以及解析组件的开发成本,同时,开发用户可以根据不同需求来设置不同的解析参数,得到不同需求的解析组件以及解析器,提高解析器的灵活性以及普适性。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1a为本申请一示例性实施例提供的一种网络系统的结构示意图。如图1a所示,该网络系统100a包括:开发终端设备101以及服务器102。

其中,开发终端设备101可以是任何具有一定计算能力的计算设备。开发终端设备101的基本结构可以包括:至少一个处理器。处理器的数量取决于开发终端设备101的配置和类型。开发终端设备101也可以包括存储器,该存储器可以为易失性的,例如ram,也可以为非易失性的,例如只读存储器(read-onlymemory,rom)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(operatingsystem,os)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,开发终端设备101还包括一些基本配置,例如网卡芯片、io总线、显示组件以及一些外围设备等。可选地,一些外围设备可以包括,例如键盘、鼠标、输入笔、打印机等。其它外围设备在本领域中是众所周知的,在此不做赘述。可选地,开发终端设备101可以为pc(personalcomputer)终端等。

服务器102是指可以在网络虚拟环境中提供计算处理服务的服务器,通常是指利用网络进行数据查询以及存储的服务器。在物理实现上,服务器102可以是任何能够提供计算服务,响应服务请求,并进行处理的设备,例如可以是常规服务器、云服务器、云主机、虚拟中心等。服务器102的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。

在本实施例中,当解析组件描述文本包含一个组件标识以及该组件标识对应的解析参数时,开发用户通过开发终端设备101向服务器102发送采用第一编程语言编写的解析组件描述文本,服务器102接收到该解析组件描述文本后,通过解析该解析组件描述文本获取其中的一个组件标识以及该组件标识对应的解析参数,根据组件标识确定一个解析组件模板,将该解析参数输入至该解析组件模板中,生成一个解析组件,服务器102向开发终端设备101发送解析组件生成的提示信息,开发终端设备101展示该提示信息给开发用户,当根据需求需要生成包含一个解析组件的解析器时,开发用户通过开发终端设备101发送采用第一编程语言编写的解析器描述文本至服务器102,服务器102通过语法解析获取该解析器描述文本中的组件名称以及解析器标识,根据该解析器标识获取解析器模板,将该组件名称输入至解析器模板中,生成包括该一个解析组件生成解析器。

当根据需求需要生成包含多个解析组件的解析器时,开发终端设备101可以继续向服务器102发送采用第一编程语言编写的解析组件描述文本,服务器102根据上述过程生成解析组件,并向开发终端设备101发送解析组件生成的提示信息,开发终端设备101展示该提示信息给开发用户,从而得到两个解析组件,直到服务器102接收到开发终端设备101发送的解析器描述文本,服务器102通过语法解析获取该解析器描述文本中的组件名称以及解析器标识,根据该解析器标识获取解析器模板,将多个组件名称输入至解析器模板中,生成包括多个解析组件进行组合生成解析器。

在本实施例中,当解析组件描述文本包含多个组件标识以及每个组件标识对应的解析参数时,开发用户通过开发终端设备101向服务器102发送采用第一编程语言编写的解析组件描述文本,服务器102接收到该解析组件描述文本后,通过解析该解析组件描述文本获取其中的多个组件标识以及每个组件标识对应的解析参数,根据每个组件标识确定其对应的一个解析组件模板,将对应的解析参数输入至对应的解析组件模板中,生成多个解析组件,服务器102向开发终端设备101发送解析组件生成的提示信息,开发终端设备101展示该提示信息给开发用户,当服务器102接收到的解析组件描述文本中包含多个解析组件的信息时,服务器102可以直接获取解析器模板,并将生成的多个解析组件的组件名称输入至解析器模板中,生成解析器。

可选地,当服务器102生成完解析器后,向开发终端设备101发送解析器生成的提示信息。

可选地,开发终端设备101发送第一查看请求至服务器102,服务器102响应该查看请求发送解析器的描述信息至开发终端设备101;开发终端设备101发送第二查看请求至服务器102,服务器102响应该查看请求发送解析器的代码信息至开发终端设备101;开发终端设备101发送第三查看请求至服务器102,服务器102响应于第三查看请求,发送已生成的至少一个解析组件的描述信息至开发终端设备101;开发终端设备101发送第四查看请求至服务器102,服务器102响应于第四查看请求,发送至少一个解析组件的代码信息至开发终端设备101;开发终端设备101发送第一删除请求至服务器102,服务器102响应于第一删除请求,删除指定解析器;开发终端设备101发送第二删除请求至服务器102,服务器102响应于第二删除请求,删除至少一个解析组件中的指定解析组件。

需要说明的是,解析组件描述文本可以通过请求的方式发送,此时该请求还可以携带请求标识,用于表明该请求的目的。或直接发送该解析组件描述文本时,开发终端设备101会根据该解析组件描述文本的具体信息自动生成一个标识,用来识别该解析组件描述文本。

在一些实例中,当服务器102生成解析器后,服务器102获取待处理文本;利用解析器中包含的至少一个解析组件对待处理文本进行解析处理,得到至少一个子文本;根据至少一个子文本建立检索索引,生成数据库,以供数据检索。

在本实施例中,开发终端设备101可以与服务器102进行网络连接。开发终端设备101与服务器102之间可以是无线或有线网络连接。若开发终端设备101通过移动网络与服务器102通信连接,该移动网络的网络制式可以为2g(gsm)、2.5g(gprs)、3g(wcdma、td-scdma、cdma2000、utms)、4g(lte)、4g+(lte+)、wimax等中的任意一种。

图1b为本申请又一示例性实施例提供的一种网络系统的结构示意图。如图1b所示,网络系统100b包括:开发终端设备101、服务器102以及查询终端设备103。

其中,网络系统100b中的开发终端设备101以及服务器102与网络系统a中的开发终端设备101以及服务器102相似,在此就不再重复赘述。

查询终端设备103可以是任何具有一定计算能力的计算设备。查询终端设备103的基本结构可以包括:至少一个处理器。处理器的数量取决于查询终端设备103的配置和类型。查询终端设备103也可以包括存储器,该存储器可以为易失性的,例如ram,也可以为非易失性的,例如只读存储器(read-onlymemory,rom)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(operatingsystem,os)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,查询终端设备103还包括一些基本配置,例如网卡芯片、io总线、显示组件以及一些外围设备等。可选地,一些外围设备可以包括,例如键盘、鼠标、输入笔、打印机等。其它外围设备在本领域中是众所周知的,在此不做赘述。可选地,查询终端设备103可以为移动终端、pc终端等。

在本实施例中,当服务器102生成解析器后,解析器被部署到该网络系统a或网络系统b中后,需要具有全文检索查询服务需求的用户通过查询终端设备103发送全文检索查询请求,服务器102接收到该全文检索查询请求后,获取该全文检索查询请求携带的关键词或待检索文本,并将该关键词输入到该解析器中的各个解析组件中,当解析组件所能处理的对象与该关键词对应时,则解析组件对该关键词进行处理并输出处理后的数据,在将该处理后的数据传入至其他解析组件中,若不对应,则解析组件不进行处理,直接输出该关键词至其它解析组件,直至所有解析组件都遍历,从解析器中输出最终的处理结果,如,多个子文本,服务器102根据该最终的处理结果,从跟解析器建立的数据库中获取到查询结果并将该查询结果返回至查询终端设备101,以供需求用户查看。

需要说明的是,当开发终端设备101或查询终端设备103在向服务器102发送全文检索查询请求或解析组件描述文本时,服务器102会根据请求中携带的具体请求信息或携带的请求标识以及解析组件描述文本所对应的标识,来确定该请求的目的以及识别解析组件描述文本,从而进行相应的处理。

在本实施例中,查询终端设备103可以与服务器102进行网络连接。查询终端设备103与服务器102之间可以是无线或有线网络连接。若查询终端设备103通过移动网络与服务器102通信连接,该移动网络的网络制式可以为2g(gsm)、2.5g(gprs)、3g(wcdma、td-scdma、cdma2000、utms)、4g(lte)、4g+(lte+)、wimax等中的任意一种。

下面结合方法实施例,针对服务器102生成自定义解析器的过程进行详细说明。

图2为本申请一示例性实施例的解析器生成方法的流程示意图。本申请实施例提供的该方法200由服务器执行,该方法200包括以下步骤:

201:接收采用第一编程语言编写的解析组件描述文本,解析组件描述文本包含至少一个组件标识及其对应的解析参数。

202:从采用第二编程语言编写的解析组件模板中,选择与至少一个组件标识分别对应的解析组件模板。

203:根据至少一个组件标识对应的解析参数及解析组件模板,生成至少一个解析组件。

204:对所至少一个解析组件进行组合,得到用于面向采用第一编程语言编写的数据库语句进行解析的解析器。

以下针对上述步骤进行详细的说明:

201:接收采用第一编程语言编写的解析组件描述文本。

其中,第一编程语言是指用来定义计算机程序的形式语言,用于向计算机发出命令,使得计算机根据该编程语言执行动作,可选地,第一编程语言可以为sql(structuredquerylanguage)结构化查询语言。

解析组件描述文本是指通过第一编程语言编写的,用于定义解析组件的配置信息,可选地,解析组件描述文本包含sql编程语言编写的至少一个组件标识及其对应的解析参数。

解析组件是指可以将一段文本进行解析处理的逻辑模块,该解析处理可以包括字符过滤处理、分词处理以及词语过滤处理等,可选地,解析组件包括字符过滤器组件、分词器组件和词语过滤器组件。该解析组件可以通过开发用户自己定义。

需要说明的是,可选地,解析组件描述文本包括一个组件标识及其对应的解析参数,还可以包括多个组件标识及每个组件标识对应的解析参数。

例如,开发用户通过开发终端设备上的开发web页面提供的sql编程语言输入框中输入sql编程语言编写的解析组件描述文本,开发用户向开发终端设备发出发送指令,开发web页面响应于该指令,向公共云服务器发送根据sql编程语言编写的解析组件描述文本,公共云服务器接收该sql编程语言编写的解析组件描述文本。

需要说明的是,本实施例除了适用于sql编程语言还可以为适用于c编程语言、c++编程语言、basic编程语言等,在此不作限定。

在一些实例中,如图3所示,该方法200还包括:301:根据解析组件描述文本中的段落结束符,确定解析组件描述文本包含的至少一个文本段落,一个文本段落对应一个解析组件;302:对至少一个文本段落分别进行语法解析,以得到至少一个组件标识及其对应的解析参数。

其中,段落结束符是指表明一个解析组件的描述信息结束的符号。例如,该段落结束符可以为分号“;”,也可以为其他符合第一编程语言语法规则的其他符号。该一个解析组件的描述信息包括一个组件标识及其对应的解析参数。

文本段落是指表明一个解析组件的描述信息,包括第一编程语言的多个语句,用于表示一个组件标识及其对应的解析参数,如包括sql编程语言的多个语句编写的一个字符过滤器组件标识及其对应的解析参数。

语法解析是指根据语法规则,对通过第一编程语言编写的解析组件描述文本中进行分析,从而确定出每个语句所表示的意义。

可选地,对至少一个文本段落分别进行语法解析,以得到至少一个组件标识及其对应的解析参数,包括:对至少一个文本段落分别进行语义解析,得到每个文本段落中的动作描述词语以及其具体含义;获取每个文本段落中动作描述词语后面指定位置处的参数作为组件标识;从每个文本段落中组件标识后面的文本语句中分别解析出每个文本段落中组件标识对应的解析参数。

其中,语义解析是指根据语法规则,对通过第一编程语言编写的解析组件描述文本中的每个语句进行分析,得出每个语句中独立字符或独立字符串或词语的意义。

动作描述词语是该文本段落中第一编程语言所要执行动作的具体描述词语,如,sql编程语言中的create词语、select词语等。该动作描述词语的具体含义是指根据该语法规则确定该词语的用途,如,在本实施例的应用场景下,在sql编程语言中,create词语是用来创建解析组件的,select词语是用来选择组件的。

动作描述词语后面指定位置处的参数是指,当确定出的动作描述词语后以及其含义后,根据第一编程语言的语法规则能够确定该词语其常规用法,根据该常规用法得知该词语后面的位置会跟着创建对象。如,create词语后会跟组件标识,如,cf,该cf表明为字符过滤器组件。

可选地,从每个文本段落中组件标识后面的文本语句中分别解析出每个文本段落中组件标识对应的解析参数的方式包括:对每个文本段落,从文本段落中组件标识后面第一位置处解析出参数定义标识;从参数定义标识后面获取文本段落中组件标识对应的解析组件所能处理的对象类型。

其中,参数定义标识是指用于表明开始定义解析参数的字符或字符串或词语。如,sql编程语言中的type词语。

当解析组件是字符过滤器组件,字符过滤器组件所能处理的对象类型包括:对文本中的字符或词语进行转换或过滤等,如,英文大写转换为小写,繁体中文转换为简体中文。

当解析组件是分词器组件,分词器组件所能处理的对象类型包括:将文本切分多个独立的词语;如,将“我是中国人”切分为“我”、“是”以及“中国人”。

当解析组件是词语过滤器组件,词语过滤器组件所能处理的对象类型包括:删除词语中的指定关键词以及词语转拼音等,如,删除指定词语可以为删除标点符号、英文的a,the,an等;词语转拼音可以为中文词语转拼音。

需要说明的是,各个解析组件所能处理的对象类型是预先设置好的,开发人员可以从设置好的所能处理的对象类型中选择自己想要的所能处理的对象类型,若开发人员需要的所能处理的对象类型不在服务器预置的范围内时,需要先在服务器中预置好才可以使用。

此外,每个解析组件具有一个所能处理的对象类型,且在根据第一编程语言编写该对象类型时,每个对象类型都有一个预置的名称,如,type_a,type_b等,其中,a字符过滤器组件具有的所能处理的对象类型为type_a:英文大写转换为小写,b字符过滤器组件具有的所能处理的对象类型为type_b:繁体中文转换为简体中文。其中,每个解析组件的对象类型的名称在编写时应当符合第一编程语言的语法规则,如sql语法规则,只能由字母、数字、下划线组合而成,必须以字母或下划线开头。

在一些实例中,该方法200进一步包括:当解析组件包括分词器组件时,从参数定义标识后面依次获取文本段落中组件标识对应的解析组件所能处理的对象类型以及切分词语指定规则。

切分词语指定规则是指对文本切分成多个独立词语的规则,如,用户词典,该用户词典可以是预置好在服务器中规则文本,该规则文本中记录了大量语句的切分方式,如,记录“我是中国人”切分为“我”、“是”以及“中国人”。若当开发人员没有定义指定规则时,服务器可以随机从预置存储在本地的多个规则中选取一个。每个规则都具有预置名称,是根据第一编程语言编写的,如符合sql语法规则的名称:dic_a,只能由字母、数字、下划线组合而成,必须以字母或下划线开头。当分词器组件在应用时,需要根据该规则文本来对关键词进行切分,即该规则文本中记录了该关键词的切分形式。

例如,根据前文所述,当解析组件是一个分词器组件时,即组件标识对应的解析组件模板是分词器组件模板时,服务器读取该解析组件描述文本,从参数定义标识后面除了获取解析组件所能处理的对象类型,还可以获取用户词典:dic_a。

在一些实例中,该方法200进一步包括:从参数定义标识后面依次获取文本段落中组件标识对应的解析组件所能处理的对象类型、对象类型的属性及属性值。

其中,对象类型的属性是指所能处理的对象类型的具体描述信息,其属性值是表示所能处理的对象类型的具体描述信息的标识,如,所能处理的对象“英文大写转换为小写”的属性为词语第一个字符“firstchar”,属性值可以为true,其中,属性与属性值可以通过key=value的形式保存,并根据第一编程语言的语法规则,将该属性以及属性值编写在对象类型后面,且key根据第一编程语言的语法规则进行编写,如符合sql语法规则,只能由字母、数字、下划线组合而成,必须以字母或下划线开头。以amply词语为例,若经过上述字符过滤器组件所能处理的对象类型,该amply词语将转换为amply词语。

例如,根据前文所述,服务器读取字符过滤器解析组件描述文本时,除了获取组件标识“cf”以及对象类型“type_a”外,还可以继续获取后面的对象类型的属性及属性值。

需要说明的是,一个所能处理的对象类型的属性可以有多个,也可以一个都没有,相对地,每个属性对应一个属性值,当解析组件描述文本中不具有属性时,服务器可以从对应解析组件(或对应解析组件模板)中随机选取一个预置的属性来配置该解析组件。

可选地,对于分词器组件的对象类型的属性可以为切分后的词语中的字符或字数最多为4个等,属性值可以为true。

可选地,对于词语过滤器组件的对象类型的属性可以为删除标点符号、删除a、the、an或将词语的第一个字转换为拼音等,属性值可以为true。

在一些实例中,该方法200进一步包括:从参数定义标识后面依次获取文本段落中组件标识对应的解析组件所能处理的对象类型、指定词语切分规则、对象类型的属性及属性值。

例如,根据前文所述,服务器读取分词器组件描述文本时,除了获取组件标识、对象类型以及指定词语切分规则外,还可以继续获取后面的对象类型的属性及属性值。

以解析组件描述文本中包含一个文本段落为例进行说明,在sql编程语言编写的解析组件描述文本中包含一个文本段落,即一个解析组件的描述信息,如下示意:

create……cf(

type……yy

[]

);

服务器在读取到该分号时,可知该解析组件描述文本有一个文本段落,并对该文本段落中的每个语句进行读取以及sql编程语言的语法解析,对第一语句进行语法解析时,可以确定出动作描述信息create的目的以及含义,并根据语法分析得到该动作描述信息后的组件标识,第一语句结束,在读取第二个语句,根据语法分析得出第二语句中的参数定义标识,则可以获取到该参数定义标识后的解析组件所能处理的对象类型,此时,不同的解析组件所能处理的不同对象类型可以通过符合sql语法规则的标识进行区分和表示,如xx表示英文大写转小写,yy表示繁体中文转换为简体中文。

当在sql编程语言编写的解析组件描述文本中包含多个文本段落,即多个解析组件的描述信息,如下示意:

create……cf(

type……yy

[]

);

create……tn(

type……yy

[]

);

create……tf(

type……yy

[]

);

根据前文所述,可以针对每个文本段落进行语法解析并获取到各个解析组件的组件标识以及对应的解析参数。此处就不再赘述。

需要说明的是,上述代码段落是代码示意,并不是最终的描述文本的代码。

当解析组件描述文本中包含多个文本段落时,多个解析组件可以包括字符过滤器组件、分词器组件和/或词语过滤器组件。

202:从采用第二编程语言编写的解析组件模板中,选择与至少一个组件标识分别对应的解析组件模板。

第二编程语言是指解析组件模板中的代码所属的编程语言以及最终生成的解析器运行在服务器中的语言运行环境也与该编程语言相对,如java编程语言,那么服务器也会给解析器提供java编程语言的运行环境,需要说明的是,在本实施例中,第二编程语言除了适用于java编程语言还可以为适用于其他编程语言,如c++编程语言、basic编程语言等,在此不作限定。

解析组件模板是指缺少具体解析参数以及组件名称的组件运行代码,通过开发用户自定义该解析组件模板来最终生成解析组件,给开发用户带来方便灵活的开发体验。同时,由于开发用户熟悉数据库服务器的编程语言,如sql编程语言,所以在以sql编程语言编写解析组件描述文本或解析器描述文本,能够提高开发用户编写时间。

多个解析组件模板可以预先存储在模板库中,通过各自的组件标识来区分,当需要获取相应的模板时,根据该模板标识来获取。可选地,解析组件模板可以包括字符过滤器模板、分词器组件模板以及分词过滤器模板。

例如,根据前文所述,当解析组件描述文本中包含一个文本段落时,获取到该文本段落中的一个组件标识cf后,服务器从模板库中查找与该组件标识cf对应的模板字符过滤器组件模板。

203:根据至少一个组件标识对应的解析参数及解析组件模板,生成至少一个解析组件。

可选地,根据至少一个组件标识对应的解析参数及解析组件模板,生成至少一个解析组件,包括:按照第一编程语言的语法结构分别为至少一个组件标识对应的解析组件模板命名;分别解析至少一个组件标识对应的解析组件模板中的参数位置;将至少一个组件标识各自对应的解析参数分别设置于各自对应的解析组件模板中的参数位置处,以得到至少一个解析组件。

可选地,按照第一编程语言的语法结构分别为至少一个组件标识对应的解析组件模板命名,包括:若至少一个组件标识分别是解析组件描述文本包含的至少一个语句中动作描述词语后面指定位置处的参数,根据至少一个组件标识后面指定位置处的参数为各自对应的解析组件模板命名。

其中,第一编程语言的语法结构是指解析组件描述文本中的语法结构,该语法结构是指编程语句的编写形式,如,sql编程语言中的create语句用法。

需要说明的是,进行解析组件模板命名的过程时,可以与获取解析参数的过程同时进行。

例如,在为字符过滤器组件模板进行命名时,服务器读取sql编程语言编写的解析组件描述文本,根据前述所述从动作描述词后获取到该组件标识后,则根据sql语法结构或sql语法规则,确定该组件标识后会预编有组件名称,组件名称需要符合sql语法规则进行编写,由字母、数字、下划线组合而成,必须以字母或下划线开头,如cf_name,则将该组件名称作为字符过滤器组件模板名称,同时也是该字符过滤器组件的名称。

需要说明的是,对解析组件模板命名或解析组件模板名称与解析组件标识并不是一个意义。解析组件标识是用来区别每个解析组件的类别,如。字符过滤器组件与分词器组件,而解析组件模板名称是用来区别一类解析组件中的每个解析组件,如,字符过滤器组件中的a字符过滤器组件和b字符过滤器组件,应理解,该解析组件模板名称也是生成后解析组件的名称,同时,也可以区分不同类型的解析组件,如,a字符过滤器组件与a分词器组件。

可选地,分别解析至少一个组件标识对应的解析组件模板中的参数位置的方式可以为:服务器获取到该解析组件模板后,读取该解析组件模板,在读取的过程中,根据第二编程语言的语法规则可以得知每个语句的描述信息以及含义,从而确定出需要补充或传入或填写的参数位置且每个参数位置需要的参数,该参数位置是指在第二编程语言编写的解析组件模板中的代码中的位置。

例如,服务器读取字符过滤器组件模板,该组件模板通过java编程语言编写,根据java语法规则确定出该java代码中需要填写的所能处理的对象类型的参数位置。

可选地,将至少一个组件标识各自对应的解析参数分别设置于各自对应的解析组件模板中的参数位置处,以得到至少一个解析组件的方式可以为:根据各个参数位置所表示的含义,将获取到的解析参数分别传入至对应的参数位置。

例如,根据前文所述,根据字符过滤器组件模板中的各个参数位置的含义,将获取到的各个对象类型、属性以及属性值传入到相应的位置,就可以生成一个字符过滤器组件。

204:对所至少一个解析组件进行组合,得到用于面向采用第一编程语言编写的数据库语句进行解析的解析器。

可选地,对至少一个解析组件进行组合,得到用于面向采用第一编程语言编写的数据库语句进行解析的解析器,包括:接收采用第一编程语言编写的解析器描述文本,解析器描述文本包含解析器标识以及解析器所包含的至少一个解析组件的名称;根据解析器标识获取解析器模板,并解析解析组件模板中的参数位置;将解析组件的名称设置于解析组件模板中的参数位置处,以得到解析器。其中,解析器描述文本是指用于定义解析器的配置信息,可以包括多个生成的解析组件的组件名称,如a字符过滤器组件、b字符过滤器组件等。

可选地,根据第一编程语言的语法规则,对该解析器描述文本中的各个语句进行语法分析,得到多个已生成解析组件的组件名称以及解析器标识,从解析器描述文本获取到解析器名称,为解析器模板命名,即为生成的解析器命名,例如,根据sql编程语言对解析器描述文本进行编写,编写后开发人员将该解析器描述文本通过开发终端设备发送至服务器,服务器接收到该解析器描述文本后,根据sql语法规则,对该解析器描述文本进行解析,得到该解析器标识、已生成解析组件的组件名称以及解析器名称,根据解析器标识获取解析器模板,该解析器模板可以是通过java编程语言编写的,所以符合java编程语言的语法规则,服务器根据java语法规则对解析器模板进行语法解析,确定出该java代码中的参数位置以及各个参数位置需要填写的参数含义,将组件名称根据需求传入到该解析器模板中的对应参数位置中,生成解析器。

在一些实例中,该方法200还包括:根据接收到的解析器描述文本,对至少一个解析组件进行组合,得到用于面向采用第一编程语言编写的数据库语句进行解析的解析器。

需要说明的是,当服务器成功生成解析组件后,向开发终端设备发送解析组件生成成功提示信息,并展示给开发人员,当开发人员查看到该提示信息后,可以通过开发终端设备发送解析器描述文本至服务器。

当解析组件描述文本中包括多个文本段落时,服务器在接收到该解析组件描述文本时,在成功生成解析组件后,可直接自动触发解析器生成步骤,获取解析器模板,直接将生成的解析组件的组件名称传入到解析器模板中,生成解析器。

当解析组件描述文本中包括一个文本段落时,可通过开发终端设备来触发解析器的生成过程。

在一些实例中,该方法200还包括以下至少一种操作:响应于第一查看请求,发送解析器的描述信息;响应于第二查看请求,发送解析器的代码信息;响应于第三查看请求,发送至少一个解析组件的描述信息;响应于第四查看请求,发送至少一个解析组件的代码信息;响应于第一删除请求,删除指定解析器;响应于第二删除请求,删除至少一个解析组件中的指定解析组件。

可选地,解析器的描述信息可以为解析器的名称,解析组件的描述信息可以为解析组件的名称。

例如,开发人员操作开发终端设备向服务器发送第一查看请求,该第一查看请求携带开发用户编写的查看解析器的sql执行语句,服务器根据该执行语句查找已生成的至少一个解析器,将解析器的名称发送至开发终端设备,以供开发用户查看,当开发用户看到该展示结果后,点击其中一个解析器名称,使得开发终端设备发送第二查看请求至服务器,该第二查看请求携带查看指定解析器的sql执行语句或开发用户直接通过开发终端设备发送第二查看请求至服务器,该第二查看请求携带开发用户编写的查看指定解析器的sql执行语句,服务器根据该sql执行语句查找指定解析器的具体代码,并将该代码返回至开发终端设备;开发人员操作开发终端设备向服务器发送第三查看请求,该第三查看请求携带开发用户编写的查看解析组件的sql执行语句,服务器根据该执行语句查找所有已生成的至少一个解析组件,将解析组件的名称发送至开发终端设备,以供开发用户查看,当开发用户看到该展示结果后,点击其中一个解析组件的名称,使得开发终端设备发送第四查看请求至服务器,该第四查看请求携带查看指定解析组件的sql执行语句或开发用户直接通过开发终端设备发送第四查看请求至服务器,该第四查看请求携带开发用户编写的查看指定解析组件的sql执行语句,服务器根据该sql执行语句查找指定解析组件的具体代码,并将该代码返回至开发终端设备。

开发人员操作开发终端设备向服务器发送第一删除请求,该第一删除请求携带开发用户编写的删除指定解析器的sql执行语句,服务器根据该sql执行语句删除指定解析器,将删除成功的提示信息发送至开发终端设备,以供开发用户知晓;开发人员操作开发终端设备向服务器发送第二删除请求,该第二删除请求携带开发用户编写的删除指定解析组件的sql执行语句,服务器根据该sql执行语句删除指定解析组件,将删除成功的提示信息发送至开发终端设备,以供开发用户知晓。

需要说明的是,开发用户向开发终端设备的开发web页面输入sql执行语句或编程语句时,当开发用户触发了发送指令时,开发终端设备会对该sql执行语句或编程语句进行语法检测,当不符合sql语法时,会展示报错提示信息,使得开发用户知晓,并进行修改重新发送。

为了更方便且快捷地执行方法200,可以通过将方法200的执行步骤模块化,每个模块执行一部分过程,可选地,该执行方法可以通过部署在服务器上的多个模块实现,如,用户输入模块、字符过滤器模块、分词器模块、词语过滤器模块以及解析器组合模块等。各个模块可以进行信息的交互从而完成解析器自定义的过程。

图4为本申请一示例性实施例的数据库检索方法的流程示意图。本申请实施例提供的该方法400由服务器执行,该方法400包括以下步骤:

401:接收检索设备发送的待检索文本。

402:利用解析器中包含的至少一个解析组件对待检索文本进行解析处理,得到至少一个子文本。

403:利用至少一个子文本在数据库中获取检索结果并返回给检索设备。

以下根据上述各个步骤进行详细的阐述:

401:接收检索设备发送的待检索文本。

可选地,检索设备可以是需求用户的查询终端设置,如公共云用户的pc(personalcomputer)端、移动终端等。

待检索文本是指向检索文本的关键词,如中文文本、英文文本等,可选地,该待检索文本可以请求的形式发送。

例如,需求用户通过pc端上提供的公共云web文章查询页面,输入待检索文本“imageprocessing”,并发出检索指令,pc端响应于该指令向服务器发送检索请求,该检索请求携带该待检索文本,服务器接收到该检索请求后并接收其中的待检索文本。

402:利用解析器中包含的至少一个解析组件对待检索文本进行解析处理,得到至少一个子文本。

可选地,利用解析器中包含的至少一个解析组件对待检索文本进行解析处理,得到至少一个子文本,包括:按照至少一个解析组件之间的组合顺序,利用至少一个解析组件对待检索文本进行解析处理,得到至少一个子文本。

可选地,至少一个解析组件之间的组合形式可以包括字符过滤器组件、分词器组件和/或词语过滤器组件,如,字符过滤器组件、分词器组件和词语过滤器组件;分词器组件和词语过滤器组件;字符过滤器组件和分词器组件;独立分词器组件等。

以组合形式字符过滤器组件、分词器组件和词语过滤器组件为例,对待检索文本进行解析处理进行阐述:

可选地,当至少一个解析组件包括字符过滤器组件、分词器组件和词语过滤器组件时,按照至少一个解析组件之间的组合顺序,利用至少一个解析组件对待检索文本进行解析处理,得到至少一个子文本,包括:将待检索文本输入字符过滤器组件进行英文字体转换和/或中文字体转换,得到至少一个第一子文本;将第一子文本输入至分词器组件进行切分词语,得到至少一个第二子文本;将至少一个第二子文本依次输入词语过滤器组件进行删除指定词语和/或词语转拼音,得到至少一个第三子文本。

应理解,由于每个解析组件具有一个所能处理的对象类型,即每个解析组件具有一个解析功能,那么相同组合形式中对于同一个解析组件而言,如,字符过滤器组件,由于其所能处理的对象类型不同(如,英文字体转换和中文字体转换),使得得到的处理结果可能并不相同。

以至少一个解析组件之间的组合顺序包括一个字符过滤器组件,其所能处理的对象类型为英文字体转换中的大写转小写;一个分词器组件,其所能处理的对象类型为切分词语;和一个词语过滤器组件,其所能处理的对象类型为删除指定词语中的删除the、a、an为例,对得到至少一个子文本进行说明:

例如,将“imageprocessing”按照输入至字符过滤器组件中,将英文大写转换为英文小写,得到“imageprocessing”,将“imageprocessing”在输入至分词器组件,根据分词器组件的指定用户词典中对“imageprocessing”的具体分词方式,将“imageprocessing”分词为“image”和“processing”,将“image”和“processing”依次输入至词语过滤器组件删除指定词语,若没有需要删除的指定词语,则直接输出得到“image”和“processing”。

需要说明的是,由于该解析器的组合形式以及组合顺序包括多种,每种形式以及每种顺序都与上述举例相似,在此就不再赘述,但应当理解均在本实施例的保护范围内。

403:利用至少一个子文本在数据库中获取检索结果并返回给检索设备。

可选地,数据库的生成方式可以为:获取待处理文本;利用解析器中包含的至少一个解析组件对待处理文本进行解析处理,得到至少一个子文本;根据至少一个子文本建立检索索引,生成数据库。

可选地,获取待处理文本的方式可以为:通过爬虫工具获取不同来源的文本,如不同网站公开的文章、新闻、论文等。将获取到的文本存储到服务器本地存储区域中,或者其他服务器节点中,或者,直接获取各个文本的来源地址,并根据各个存储地址或来源地址获取到多个文本。

需要说明的是,利用解析器中包含的至少一个解析组件对待处理文本进行解析处理,得到至少一个子文本的具体实施方式与前文所述中解析器中的至少一个解析组件对待检索文本的处理方式相同;此处就不再赘述。根据上述实施方式能够将多个文本处理为多个子文本,如将一篇新闻中的新闻文本处理切分为多个独立词语,并将各个独立词语进行指定词语的删除,得到多个独立词语。

可选地,根据至少一个子文本建立检索索引,生成数据库可以为:通过各个子文本与其所属文本的存储地址或来源地址以及文本信息,建立索引,如,多个独立词语:图像、处理、矩阵,其所属文章来源地址或处或存储地址分别为“xx.66”、“yy.77”、“zz.88”,其所属文章信息,如标题分别为:“aaa”、“bbb”、“ccc”,那么建立索引可以为建立对应关系:图像—“aaa”“xx.66”,处理—“bbb”“yy.77”,矩阵—“ccc”“zz.88”等,当在后续处理中若还有其他相同独立词语出现,如,图像,根据相同独立词语,对不同文本的存储地址或来源地址以及文本信息进行聚合。如,图像—“aaa”“xx.66”、“aba”“xy.66”、“abb”“xz.66”等,将建立好的索引进行排序生成数据检索库,如论文数据库。

当生成完数据库后,对待检索文本中的子文本,如,“image”和“processing”,作为检索条件输入到数据库中,根据数据库中的索引获取子文本对应的所有来源地址或存储地址以及文本信息,将搜索到的来源地址或存储地址以及文本信息发送至检索设备,供用户查看使用。

图5为本申请一示例性实施例的数据库检索方法的流程示意图。本申请实施例提供的该方法500由服务器执行,该方法500包括以下步骤:

501:获取待处理文本。

502:利用解析器中包含的至少一个解析组件对待处理文本进行解析处理,得到至少一个子文本.

503:根据至少一个子文本建立检索索引,生成数据库,以供数据检索。

由于前文已经对本实施例进行了详细地阐述,此处就不再赘述。

下面结合几个示例性应用场景对本申请技术方案进行详细说明:

场景1:在公共云数据库服务器上部署解析器生成工具,该解析器生成工具可以实现方法200,开发人员通过开发终端设备上提供的公共云开发web页面进行解析器自定义,通过sql编程语言编写解析组件描述文本,并向开发终端设备发出发送指令,开发终端设备响应该指令向数据库服务器发送sql编程语言编写的解析组件描述文本,服务器接收到该解析组件描述文本后,根据sql语法规则对该解析组件描述文本进行sql语法解析,得到该解析组件描述文本中的组件标识cf、组件名称:a_name,解析组件所能处理的对象类型:type_a、type_a属性:firstchar以及type_a属性值:true,服务器根据组件标识cf查找解析组件模板库中的由java编程语言编写的字符过滤器组件模板,并读取该字符过滤器组件模板,根据java语法规则确定出该字符过滤器组件模板中的参数位置以及各个参数位置所代表的含义,将解析组件所能处理的对象类型:type_a、type_a属性:firstchar以及type_a属性值:true分别传入到该字符过滤器组件模板中的对应参数位置上,生成字符过滤器组件,并将该字符过滤器组件命名为a_name,服务器向开发终端设备返回生成组件的提示信息,开发人员继续向数据库服务器发送sql编程语言编写的解析组件描述文本,服务器接收到该解析组件描述文本后,根据sql语法规则对该解析组件描述文本进行sql语法解析,得到该解析组件描述文本中的组件标识tn、组件名称:b_name,解析组件所能处理的对象类型:type_b、用户词典:dic_a、type_b属性:独立词语中的字符数量最多为4个以及type_b属性值:true,服务器根据组件标识tn查找解析组件模板库中的由java编程语言编写的分词器组件模板,并读取该分词器组件模板,根据java语法规则确定出该分词器组件模板中的参数位置以及各个参数位置所代表的含义,将解析组件所能处理的对象类型:type_b、用户词典:dic_a、type_b属性:独立词语中的字符数量最多为4个以及type_b属性值:true,分别传入到该分词器组件模板中的对应参数位置上,生成分词器组件,并将该分词器组件命名为b_name,服务器向开发终端设备返回生成组件的提示信息。开发终端设备继续向数据库服务器发送sql编程语言编写的解析器描述文本,服务器接收到该解析器描述文本后,根据sql语法规则对该解析器描述文本进行sql语法解析,得到该解析器描述文本中的解析器标识an、解析器名称:c_name、字符过滤器组件的组件名称:a_name以及分词器组件的组件名称:b_name,服务器根据解析器标识an查找由java编程语言编写的解析器模板,并读取该解析器组件模板,根据java语法规则确定出该解析器模板中的参数位置以及各个参数位置所代表的含义,将字符过滤器组件的组件名称:a_name以及分词器组件的组件名称:b_name分别传入到该解析器模板中的对应参数位置上,生成解析器,并将该解析器命名为c_name,服务器向开发终端设备返回生成解析器的提示信息。

在生成解析器后,服务器根据通过爬虫工具获取大量文章标题、作者以及来源地址,服务器根据生成后的解析器中的a_name字符过滤器组件以及b_name分词器组件,对大量文章的文本依次进行处理,将各个文章的文本依次先输入至a_name字符过滤器组件,再输入至b_name分词器组件中,得到每个文章的多个独立词语,并将相同独立词语的文章标题以及对应的作者进行聚合,建立不同独立词语与对应的文章标题、作者以及来源地址之间的索引,一个独立词语可以对应多个文章标题,每个文章标题具有自己的作者和来源地址,对建立后的索引进行排序形成检索数据库,供需求用户进行检索。

在生成解析器后,需求用户通过查询终端设备的公共云查询web页面向数据库服务器发送文章全文检索查询请求,该全文检索查询请求携带用户id以及待检索文本:imageprocessing,数据库服务器接收到该全文检索查询请求后,根据该全文检索查询请求的请求标识,将待检索文本:imageprocessing输入至生成的解析器中,解析器中的各个解析组件对该待检索文本进行英文大写转小写处理,并将处理后的待查询文本进行分词处理,得到多个英文分词。数据库服务器将多个英文分词输入至生成的检索数据库中,得到相应的文章信息、作者以及来源地址,并将该文章信息、作者以及来源地址返回至查询终端设备以供需求用户进行查看。

图6为本申请一示例性实施例提供的解析器生成装置的结构框架示意图。该装置600可以应用于服务器中,该装置600包括接收模块601、选择模块602、生成模块603和组合模块604,以下针对各个模块的功能进行详细的阐述:

接收模块601,用于接收采用第一编程语言编写的解析组件描述文本,解析组件描述文本包含至少一个组件标识及其对应的解析参数。

选择模块602,用于从采用第二编程语言编写的解析组件模板中,选择与至少一个组件标识分别对应的解析组件模板。

生成模块603,用于根据至少一个组件标识对应的解析参数及解析组件模板,生成至少一个解析组件。

组合模块604,用于对至少一个解析组件进行组合,得到用于面向采用第一编程语言编写的数据库语句进行解析的解析器。

在一些实例中,该装置600还包括:确定模块,用于根据解析组件描述文本中的段落结束符,确定解析组件描述文本包含的至少一个文本段落,一个文本段落对应一个解析组件;解析模块,用于对至少一个文本段落分别进行语法解析,以得到至少一个组件标识及其对应的解析参数。

可选地,解析模块包括:解析单元,用于对至少一个文本段落分别进行语义解析,得到每个文本段落中的动作描述词语以及其具体含义;获取单元,用于获取每个文本段落中动作描述词语后面指定位置处的参数作为组件标识;解析单元,用于从每个文本段落中组件标识后面的文本语句中分别解析出每个文本段落中组件标识对应的解析参数。

可选地,如图7所示,生成模块603包括:命名单元701,用于按照第一编程语言的语法结构分别为至少一个组件标识对应的解析组件模板命名;解析单元702,用于分别解析至少一个组件标识对应的解析组件模板中的参数位置;设置单元703:将至少一个组件标识各自对应的解析参数分别设置于各自对应的解析组件模板中的参数位置处,以得到至少一个解析组件。

可选地,命名单元701,具体用于,若至少一个组件标识分别是解析组件描述文本包含的至少一个语句中动作描述词语后面指定位置处的参数,根据至少一个组件标识后面指定位置处的参数为各自对应的解析组件模板命名。

可选地,至少一个解析组件包括字符过滤器组件、分词器组件和/或词语过滤器组件。

可选地,解析单元,具体用于,对每个文本段落,从文本段落中组件标识后面第一位置处解析出参数定义标识;从参数定义标识后面获取文本段落中组件标识对应的解析组件所能处理的对象类型。

在一些实例中,该装置600进一步包括:获取模块,用于当解析组件是分词器组件时,从参数定义标识后面依次获取文本段落中组件标识对应的解析组件所能处理的对象类型以及切分词语指定规则。

在一些实例中,该装置600进一步包括:获取模块,用于从参数定义标识后面依次获取文本段落中组件标识对应的解析组件所能处理的对象类型、对象类型的属性及属性值。

在一些实例中,该装置600进一步包括:获取模块,用于从参数定义标识后面依次获取文本段落中组件标识对应的解析组件所能处理的对象类型、指定词语切分规则、对象类型的属性及属性值。

可选地,当解析组件是字符过滤器组件,字符过滤器组件所能处理的对象类型包括:英文字体转换以及中文字体转换;当解析组件是分词器组件,分词器组件所能处理的对象类型包括:切分词语;当解析组件是词语过滤器组件,词语过滤器组件所能处理的对象类型包括:删除指定词语以及词语转拼音。

可选地,组合模块604包括:接收单元,用于接收采用第一编程语言编写的解析器描述文本,解析器描述文本包含解析器标识以及解析器所包含的至少一个解析组件的名称;获取单元,用于根据解析器标识获取解析器模板,并解析解析组件模板中的参数位置;设置单元,用于将解析组件的名称设置于解析组件模板中的参数位置处,以得到解析器。

在一些实例中,该装置600进一步包括:响应模块,用于响应于第一查看请求,发送解析器的描述信息;响应于第二查看请求,发送解析器的代码信息;响应于第三查看请求,发送至少一个解析组件的描述信息;应于第四查看请求,发送至少一个解析组件的代码信息;响应于第一删除请求,删除指定解析器;响应于第二删除请求,删除至少一个解析组件中的指定解析组件。

可选地,第一编程语言是sql语言,第二编程语言是java语言。

以上描述了图6所示的生成装置600的内部功能和结构,在一个可能的设计中,图10所示的生成装置600的结构可实现为服务器1000,如图10所示,该服务器1000可以包括:存储器1001、处理器1002以及通信组件1003;

通信组件1003,用于接收采用第一编程语言编写的解析组件描述文本,解析组件描述文本包含至少一个组件标识及其对应的解析参数;存储器1001,用于存储计算机程序;处理器1002,用于执行计算机程序,以用于:从采用第二编程语言编写的解析组件模板中,选择与至少一个组件标识分别对应的解析组件模板;根据至少一个组件标识对应的解析参数及解析组件模板,生成至少一个解析组件;对至少一个解析组件进行组合,得到用于面向采用第一编程语言编写的数据库语句进行解析的解析器。

在一些实例中,处理器1002,还用于:根据解析组件描述文本中的段落结束符,确定解析组件描述文本包含的至少一个文本段落,一个文本段落对应一个解析组件;对至少一个文本段落分别进行语法解析,以得到至少一个组件标识及其对应的解析参数。

可选地,处理器1002,具体用于:对至少一个文本段落分别进行语义解析,得到每个文本段落中的动作描述词语以及其具体含义;获取每个文本段落中动作描述词语后面指定位置处的参数作为组件标识;从每个文本段落中组件标识后面的文本语句中分别解析出每个文本段落中组件标识对应的解析参数。

可选地,处理器1002,具体用于:按照第一编程语言的语法结构分别为至少一个组件标识对应的解析组件模板命名;分别解析至少一个组件标识对应的解析组件模板中的参数位置;将至少一个组件标识各自对应的解析参数分别设置于各自对应的解析组件模板中的参数位置处,以得到至少一个解析组件。

可选地,处理器1002,具体用于:若至少一个组件标识分别是解析组件描述文本包含的至少一个语句中动作描述词语后面指定位置处的参数,根据至少一个组件标识后面指定位置处的参数为各自对应的解析组件模板命名。

可选地,至少一个解析组件包括字符过滤器组件、分词器组件和/或词语过滤器组件。

可选地,处理器1002,具体用于:对每个文本段落,从文本段落中组件标识后面第一位置处解析出参数定义标识;从参数定义标识后面获取文本段落中组件标识对应的解析组件所能处理的对象类型。

在一些实例中,处理器1002,还用于:当解析组件包括分词器组件时,从参数定义标识后面依次获取文本段落中组件标识对应的解析组件所能处理的对象类型以及切分词语指定规则。

在一些实例中,处理器1002,还用于:从参数定义标识后面依次获取文本段落中组件标识对应的解析组件所能处理的对象类型、对象类型的属性及属性值。

在一些实例中,处理器1002,还用于:从参数定义标识后面依次获取文本段落中组件标识对应的解析组件所能处理的对象类型、指定词语切分规则、对象类型的属性及属性值。

可选地,当解析组件是字符过滤器组件,字符过滤器组件所能处理的对象类型包括:英文字体转换以及中文字体转换;当解析组件是分词器组件,分词器组件所能处理的对象类型包括:切分词语;当解析组件是词语过滤器组件,词语过滤器组件所能处理的对象类型包括:删除指定词语以及词语转拼音。

可选地,处理器1002,具体用于:接收采用第一编程语言编写的解析器描述文本,解析器描述文本包含解析器标识以及解析器所包含的至少一个解析组件的名称;根据解析器标识获取解析器模板,并解析解析组件模板中的参数位置;将解析组件的名称设置于解析组件模板中的参数位置处,以得到解析器。

在一些实例中,处理器1002,还用于:响应于第一查看请求,发送解析器的描述信息;响应于第二查看请求,发送解析器的代码信息;响应于第三查看请求,发送至少一个解析组件的描述信息;应于第四查看请求,发送至少一个解析组件的代码信息;响应于第一删除请求,删除指定解析器;响应于第二删除请求,删除至少一个解析组件中的指定解析组件。

可选地,第一编程语言是sql语言,第二编程语言是java语言。

另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图2方法实施例中解析器生成方法的步骤。

图8为本申请一示例性实施例提供的数据库检索装置的结构框架示意图。该装置800可以应用于服务器中,该装置800包括:接收模块801、处理模块802和返回模块803,以下针对各个模块的功能进行详细的阐述:

接收模块801,用于接收检索设备发送的待检索文本。

处理模块802,用于利用解析器中包含的至少一个解析组件对待检索文本进行解析处理,得到至少一个子文本;

返回模块803,用于利用至少一个子文本在数据库中获取检索结果并返回给检索设备。

可选地,处理模块802:用于按照至少一个解析组件之间的组合顺序,利用至少一个解析组件对待检索文本进行解析处理,得到至少一个子文本。

可选地,至少一个解析组件包括字符过滤器组件、分词器组件和/或词语过滤器组件。

可选地,当至少一个解析组件包括字符过滤器组件、分词器组件和词语过滤器组件时,处理模块802包括:转换单元,用于将待检索文本输入字符过滤器组件进行英文字体转换和/或中文字体转换,得到至少一个第一子文本;切分单元,用于将第一子文本输入至分词器组件进行切分词语,得到至少一个第二子文本;过滤单元,用于将至少一个第二子文本依次输入词语过滤器组件进行删除指定词语和/或词语转拼音,得到至少一个第三子文本。

在一些实例中,该装置800进一步包括:获取模块,用于获取待处理文本;处理模块802,用于利用解析器中包含的至少一个解析组件对待处理文本进行解析处理,得到至少一个子文本;建立模块,用于根据至少一个子文本建立检索索引,生成数据库。

以上描述了图8所示的检索装置800的内部功能和结构,在一个可能的设计中,图11所示的检索装置800的结构可实现为服务器1100,如图11所示,该服务器1100可以包括:存储器1101、处理器1102以及通信组件1103;

通信组件1103,用于接收检索设备发送的待检索文本;存储器1101,用于存储计算机程序;处理器1102,用于执行计算机程序,以用于:利用解析器中包含的至少一个解析组件对待检索文本进行解析处理,得到至少一个子文本;利用至少一个子文本在数据库中获取检索结果;通信组件1103,用于将检索结果返回给检索设备。

可选地,处理器1102,具体用于,按照至少一个解析组件之间的组合顺序,利用至少一个解析组件对待检索文本进行解析处理,得到至少一个子文本。

可选地,至少一个解析组件包括字符过滤器组件、分词器组件和/或词语过滤器组件。

可选地,当至少一个解析组件包括字符过滤器组件、分词器组件和词语过滤器组件时,处理器1102,具体用于,将待检索文本输入字符过滤器组件进行英文字体转换和/或中文字体转换,得到至少一个第一子文本;将第一子文本输入至分词器组件进行切分词语,得到至少一个第二子文本;将至少一个第二子文本依次输入词语过滤器组件进行删除指定词语和/或词语转拼音,得到至少一个第三子文本。

在一些实例中,处理器1102,还用于,获取待处理文本;处理模块802,用于利用解析器中包含的至少一个解析组件对待处理文本进行解析处理,得到至少一个子文本;建立模块,用于根据至少一个子文本建立检索索引,生成数据库。

另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图4方法实施例中数据库检索方法的步骤。

图9为本申请一示例性实施例提供的数据库检索装置的结构框架示意图。该装置900可以应用于服务器中,该装置900包括:获取模块901、处理模块902和建立模块903,以下针对各个模块的功能进行详细的阐述:

获取模块901:用于获取待处理文本。

处理模块902,用于利用解析器中包含的至少一个解析组件对待处理文本进行解析处理,得到至少一个子文本;

建立模块903,用于根据至少一个子文本建立检索索引,生成数据库,以供数据检索。

以上描述了图9所示的检索装置900的内部功能和结构,在一个可能的设计中,图12所示的检索装置900的结构可实现为服务器1200,如图12所示,该服务器1200可以包括:存储器1201、处理器1202以及通信组件1203;

通信组件1203,用于获取待处理文本;存储器1201,用于存储计算机程序;处理器1202,用于执行计算机程序,以用于:利用解析器中包含的至少一个解析组件对待处理文本进行解析处理,得到至少一个子文本;根据至少一个子文本建立检索索引,生成数据库,以供数据检索。

另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图5方法实施例中数据库检索方法的步骤。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202、203等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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