具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
ElasticSearch可以支持很多款分词插件,在实际的环境部署中可以使用任意一种以满足大多数的分词需求,例如本身支持基础的分词库、可以扩展自己的分词库等。目前采用的主流方案可以是在ES插件库安装自定义的分词插件,然而现有的技术方案可能产生的一个局限的问题是,所有的ES集群当中的索引都是使用的同一套分词库,分词库没有差别,分词策略不够灵活。另外,在ES集群系统中仅部署一套分词库,可能导致分词库不易扩展的问题。
基于此,在本示例实施例中,首先提供了一种数据检索方法,可以利用服务器来实现本公开的用数据检索方法,也可以利用终端设备来实现本公开所述的方法,其中,本公开中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)等移动终端,以及诸如台式计算机等固定终端。图1示意性示出了根据本公开的一些实施例的数据检索方法流程的示意图。参考图1,该数据检索方法可以包括以下步骤:
步骤S110,获取检索数据,并确定检索数据对应的目标数据库索引。
步骤S120,确定与目标数据库索引对应的目标分词器;其中,目标数据库索引通过关联映射关系与目标分词器相对应。
步骤S130,确定与目标分词器对应的分词数据库。
步骤S140,基于分词数据库并通过目标分词器确定检索数据对应的向量化表示。
步骤S150,根据向量化表示的检索数据在目标数据库索引对应的数据库中确定与检索数据对应的检索结果数据。
根据本示例实施例中的数据检索方法,一方面,确定出检索数据对应的目标数据库索引,可以通过关联映射关系确定出与目标数据索引对应的目标分词器,并根据目标分词器确定对应的分词数据库,使得目标数据库索引具有与之对应的目标分词器与分词数据库。另一方面,通过在索引层级设置多个分词器,可以隔离分词器的分词加载过程,更加灵活地支持分词器。又一方面,不同的数据库索引对应的不同的分词数据库,可以使得分词策略更加灵活。
下面,将对本示例实施例中的数据检索方法进行进一步的说明。
在步骤S110中,获取检索数据,并确定检索数据对应的目标数据库索引。
在本公开的一些示例性实施方式中,全文搜索引擎(Full Text Retrieval)可以通过从互联网上提取的各个网站的信息而建立的数据库中,检索与用户查询条件匹配的相关记录,并按一定的排列顺序将结果返回给用户,例如,全文搜索引擎可以包括谷歌(Google)、百度、ElasticSearch等等。ElasticSearch,简称ES,可以用于提供分布式的全文搜索功能。本公开将以ElasticSearch为例,对数据搜索过程进行详细阐述。
检索数据可以是表示检索需求的数据,将检索数据输入至全文搜索引擎,全文搜索引擎可以根据检索数据确定出返回结果,例如,检索数据可以是“秋冬连衣裙”。数据库索引可以用于存储数据,可以理解为关系型数据库中的一个数据库。目标数据库索引可以是与检索数据对应的数据库索引。获取检索数据可以是获取用户输入的检索数据,还可以是从目标位置获取索引数据;具体的,当用户有检索需求时,可以确定出与检索需求对应的检索数据;目标位置可以是获取检索数据的对应位置,搜索引擎的后台服务器可以从目标位置获取检索数据。当获取到检索数据后,可以确定出与检索数据对应的目标数据库索引,以便根据确定出的目标数据库索引确定出与该检索数据对应的检索结果。
根据本公开的一些示例性实施例,确定多个数据库索引以及各数据库索引分别对应的索引标签;确定检索数据与各索引标签之间的匹配度,根据匹配度确定目标数据库索引。索引标签可以是与数据库索引对应的标签,根据数据库索引中包含的信息类型,可以确定出数据库索引对应的索引标签。匹配度可以是标识检索数据与多个索引标签之间的匹配程度的关系量。
参考图2,图2示意性示出了根据检索数据确定目标数据库索引的流程图。在步骤S210中,由于全文搜索引擎中包含多个数据库索引,因此,可以确定出全文搜索引擎中包含的全部数据库索引,并确定每个数据库索引分别对应的索引标签。在步骤S220中,将确定出的检索数据与每个数据库索引的索引标签进行逐个对比,确定出检索数据与各数据库索引的索引标签之间的匹配度,并根据得到的匹配度结果确定出检索数据对应的目标数据库索引。在本示例实施例中,可以将检索数据与索引标签的匹配度最高的数据库索引确定为检索数据对应的目标数据库索引。
举例而言,全文搜索引擎中可以包含的多个数据库索引,例如可以包括“电脑数码”、“洗护生活”、“服装鞋帽”、“食品百货”、“水果生鲜”等多种不同的数据库索引。当检索数据为“秋冬连衣裙”时,则检索数据与“服装鞋帽”这一数据库索引的匹配度最高,因此,可以将数据库索引作为检索数据为“秋冬连衣裙”的目标数据库索引。
需要说明的是,在对检索数据与索引标签进行对比之前,可以对检索数据进行简单的切词处理,但该步骤进行的切词处理仅是将检索数据切分为单个文字的过程,以将切分后形成的检索数据与索引标签进行对比,与下文中目标分词器的分词处理过程并不相同。
在步骤S120中,确定与目标数据库索引对应的目标分词器;其中,目标数据库索引通过关联映射关系与目标分词器相对应。
在本公开的一些示例性实施方式中,分词器可以对检索数据进行分词处理;其中,分词处理可以是对检索数据进行划分为一个个关键字的处理过程,检索关键词可以是对检索数据进行分词处理后得到的分词结果。目标分词器可以是对目标数据库索引对应的分词器。关联映射关系可以是表示目标数据库索引与目标分词器之间的关联性的映射关系。举例而言,一个数据库索引可以对应一个目标分词器,或者一个数据库索引也可以对应多个目标分词器。
当确定出与检索数据对应的目标数据库索引后,可以确定出与目标数据库索引具有关联映射关系的分词器作为目标分词器,以便通过确定出的目标分词器对检索数据进行切分处理。
参考图3,图3示意性示出了采用根据不同业务逻辑生成的分词器进行分词处理的流程图。针对检索数据“我爱蓝天白云”,ES集群中的两个分词器,分词器310(分词器1)和分词器320(分词器2),分词器1对应第一分词数据库,分词器2对应第二分词数据库。对“我爱蓝天白云”按照不同的业务逻辑需求进行分词,第一分词数据库311对应的分词结果可以为“我爱蓝天白云”,因此第一分词数据库中存储{我爱蓝天白云};第二分词数据库321对应的分词结果为“我”、“爱”、“蓝天白云”、“蓝天”、“白云”,则第二分词数据库中存储{我,爱,蓝天白云,蓝天,白云}。采用分词器1,可以基于数据记录312进行检索操作,由于第一分词数据库311仅存储了{我爱蓝天白云},因此,当采用“蓝天白云”进行检索,则命中率较低;当采用“我爱蓝天白云”进行检索,则命中率高。其中,命中率可以反映ES索引记录的分值,当分词结果与分词数据库的匹配程度越高时,ES返回的结果对应的分值就越高。同理,采用分词器2,可以基于数据记录322进行检索操作,由于第二分词数据库321存储了{我,爱,蓝天白云,蓝天,白云},因此,当采用“蓝天白云”、“蓝天”、“白云”进行检索,均可以产生较高的命中率。
根据本公开的一些示例性实施例,确定与目标数据库索引对应的初始分词器;获取初始分词器的配置属性;其中,配置属性包括分词器属性和分析器属性;对分词器属性与分析器属性进行配置操作,以生成与目标数据库索引对应的目标分词器。ES可以支持多插件的功能,因此可以通过ES插件安装多个分词器。具体的,分词器可以包括默认分词器(standard分词器)、汉语言处理分词器(HanLP分词器)、中文分词器(IK分词器)等。IK分词器具有自带分词的特点,还可以自己扩展词典,同时支持远程的热更新功能,本示例实施例将以ES集群中IK分词器的改造过程为例进行详细阐述。
初始分词器可以是在ES集群系统的目录中安装的且未经过自定义处理过程的分词器。配置属性可以对初始分词器进行自定义的过程中,可以根据需求自行配置的属性。IK分词器可以包括分析器、分词器和过滤器等。具体的,分词器,也称tokenizer,分词器可以是对用于创建索引的文档进行分析,以从文档中提取出若干词元(Token)的一系列算法,分词器可以用于对文本资源进行切分,将文本规则切分为一个个可以进入索引的最小单元。分析器,即analyzer,主要包含分词器和过滤器,分词器可以将分词器跟过滤器进行合理的组合,使之可以产生对文本分词和过滤的效果。分析器可以使用分词和过滤器构成一个管道,文本在“滤过”这个管道之后,将成为可以进入索引的最小单位。分词器属性可以是分词器的相关属性,分词器属性具有对应的分词器属性值。分析器属性可以是分析器的相关属性,分析器属性具有对应的分析器属性值。配置操作可以是对分词器属性和分词器属性进行配置的操作,例如,配置操作可以是调整分词器的tokenizer和analyzer对应的名称的过程。
参考图4,图4示意性示出了生成目标数据库索引对应的目标分词器的流程图。在步骤S410中,可以确定出与目标数据库索引对应的初始分词器。在步骤S420中,确定出初始分词器后,可以获取到该初始分词器对应的分词器属性和分析器属性等配置属性。在步骤S430中,对获取到的配置属性进行配置操作,可以生成与该目标数据库索引对应的目标分词器,以基于确定出的目标分词器对应检索数据进行分词处理。
举例而言,下述代码中示意性示出了生成目标分词器的过程,通过该实现过程可以使每个数据库索引对应特定的目标分词器。
public class AnalysisIkPlugin extends Plugin implementsAnalysisPlugin{
public static String PLUGIN_NAME="analysis-ik-laws";
@override
public Map<String,AnalysisModule.
AnalysisProvider<TokenizerFactory>>getTokenizers(){
Map<String,AnalysisModule.AnalysisProvider
<TokenizerFactory>>extra=new HashMap<>();
extra.put("laws_ik_smart",IkTokenizerFactory::
getIkSmart TokenizerFactory);
extra.put("laws_ik_max_word",
IkTokenizerFactory::getIkTokenizerFactory);
return extra;
@override
public Map<String,AnalysisModule.AnalysisProvider
<AnalyzerProvider<?extends Analyzer>>>getAnalyzers(){
Map<String,AnalysisModule.AnalysisProvider<AnalyzerProvider<?extendsAnalyzer>>>extra=new HashMap<>();
extra.put("laws_ik_smart",IkAnalyzerProvider::
getIkSmartAnalyzerProvider);
extra.put("laws_ik_max_word",IkAnalyzerProvider::
getIkAnalyzerProvider);
return extra;
}
}
其中,laws可以表示数据库索引对应的标识符,上述代码进行了针对标识符为laws的数据库索引对应的目标分词器的生成过程,分别通过getTokenizers函数和getAnalyzer函数对目标分词器的属性值进行配置。从上述代码中可以看出,在创建mapping的同时,可以对分词器插件进行复制操作,并修改分词器,为分词器指定一个新的名字,具体的,在函数getTokenizers中可以指定分词器的名字,例如在getTokenizers函数中将分词器的名字指定为laws_ik_smart和laws_ik_max_word;另外,在函数getAnalyzers中可以制定分析器的名字,例如,在getAnalyzers函数中将分析器的名字指定为laws_ik_smart和laws_ik_max_word,以生成目标分词器。
通过上述对数据库索引对应的目标分词器改造过程,可以实现每个数据库索引具有对应的目标分词器和分词数据库。参考图5,图5示意性示出了目标数据库索引、目标分词库与分词数据库之间的对应关系图。在图5中,数据库索引511可以对应分词器512以及分词数据库513,数据库索引521可以对应分词器522以及分词数据库523,以此类推,编号为n的数据库索引531可以对应分词器532(分词器n)以及分词数据库533(分词数据库n),可以实现每个数据库索引对应特定的分词器和分词数据库。
在本公开的其他示例性实施例中,根据实际业务逻辑需求,一个数据库索引还可以对应多个分词器。
根据本公开的另一示例性实施例,获取目标数据库索引的映射关系信息模板;从目标分词器中确定分词器属性值与分析器属性值;将分词器属性值与分析器属性值添加至映射关系信息模板,以生成目标数据库索引的映射关系信息;根据映射关系信息调用目标分词器。映射关系信息模板可以是用于定义目标数据库索引的映射关系信息所采用的模板。由于ES集群的插件下可以安装多个IK分词器,因此,可以对不同IK分词器的tokenizer和analyzer进行重命名,以确保每个分词器都具有独立的名字。分词器属性值可以是某一初始分词器进行重命名等配置操作后,所生成的目标分词器所对应分词器的名称等属性值。分析器属性值可以是目标分词器对应的分词器的名称等属性值。映射关系信息,即mapping,可以在Elasticsearch中实现约束,定义一个文档以及其所包含的字段如何被存储和索引的方法。
由于ES可以安装多个分词器,对多个分词器tokenizer和analyzer进行重命名,可以保证每个分词器都对应独立的名称。如果在ES集群中创建目标数据库索引时,可以创建映射关系信息,使得创建出的映射关系信息与上述创建的分词器的配置属性值保持一致。具体的,参考图6,图6示意性示出了生成生成映射关系信息以调用目标分词器的流程图。在步骤S610中,在创建映射关系信息时,可以首先获取用于创建映射关系信息的映射关系信息模板。在步骤S620中,可以从目标分词器中获取分词器属性值与分析器属性值。在步骤S630中,将获取到的配置属性的属性值添加至映射关系信息模板中,以形成映射关系信息。需要说明的是,定义的映射关系信息需与创建的分词器属性值和分析器属性值保持一致。在步骤S640中,根据生成的映射关系信息可以调用目标分词器,以便采用目标分词器对检索数据进行分词处理。
举例而言,本示例实施例采用代码形式示出了为一个数据库索引创建mapping的定义,具体如下述代码所示。
如上述代码段所示,定义的mapping需要和创建的tokenizer和analyzer的属性值保持一致,以analyzer属性为例,上述代码指定了title和content字段的analyzer值和所创建的IK分词器是一致的,因此,可以确保往ES中添加数据和检索数据的时候,使用的是这个数据库索引所需的分词效果,达到目标ES索引级别的分词库的使用。
在步骤S130中,确定与目标分词器对应的分词数据库。
在本公开的一些示例性实施方式中,分词数据库可以是用于存储目标分词器对应的分词的数据库。由于分词的不同业务逻辑需求,可以根据不同的业务逻辑需求定义不同的分词器,不同的分词器可以对应各自的分词数据库。
确定出目标分词器后,可以确定出与目标分词器对应的分词数据库,以便基于分词数据库并通过目标分词器对检索数据进行分词处理,并进行后续的检索过程。
在步骤S140中,基于分词数据库并通过目标分词器确定检索数据对应的向量化表示。
在本公开的一些示例性实施方式中,向量化表示可以将检索数据进行分词处理后,采用向量形式表示检索数据的过程。当确定出检索数据对应的目标分词器和分词数据库后,可以基于分词数据库中存储的分词,并通过目标分词器对检索数据进行分词处理,对检索数据进行切分,切分完成后确定出检索数据对应的向量化表示,即生成向量化表示的检索数据。举例而言,针对“我爱蓝天白云”,在基于第二分词数据库并通过分词器2进行分词处理后,得到的向量化表示可以为{我,爱,蓝天白云,蓝天,白云}。
根据本公开的一些示例性实施例,基于分词数据库确定与检索数据对应的检索关键词;基于检索关键词并通过目标分词器对检索数据进行向量化处理;将经过向量化处理的检索数据作为检索数据对应的向量化表示。检索关键词可以是对检索数据进行分词处理后,基于检索数据确定出的关键词,例如,“我爱蓝天白云”对应的检索关键词可以包括:我,爱,蓝天白云,蓝天,白云等。向量化处理可以是基于检索关键词将检索数据采用向量形式表示的过程。
参考图7,图7示意性示出了对检索数据进行处理以生成检索数据对应的向量化表示的流程图。在步骤S710中,确定出与检索数据对应的分词数据库,基于分词数据库可以确定出与检索数据对应的检索关键词。在步骤S720中,可以基于检索关键词并通过目标分词器对检索数据进行向量化处理,即目标分词器根据检索关键词将检索数据以向量形式表示。在步骤S730中,根据经过向量化处理的检索数据生成检索数据对应的向量化表示,以便根据向量化表示的检索数据从与目标数据库索引对应的数据库中确定检索结果数据。
在步骤S150中,根据向量化表示的检索数据在目标数据库索引对应的数据库中确定与检索数据对应的检索结果数据。
在本公开的一些示例性实施方式中,向量化表示的检索数据可以是以向量形式进行表示的检索数据。目标数据库索引对应的数据库可以是用于存储大量文本、文档、网页页面等类型数据的数据库。检索结果数据可以是经过检索过程从目标数据库索引对应的数据库中确定出的与检索数据对应的数据。
举例而言,当检索数据为“熬夜的危害”时,经过检索过程可以从目标数据库索引对应的数据库中确定出与该检索数据对应的文档等内容,并将确定出的检索结果数据返回至目标位置,例如,目标位置可以是全文搜索引擎对应的搜索界面。在某些应用场景中,用户可以基于全文搜索引擎提供的搜索界面进行搜索操作,当用户输入检索数据,并触发相应的检索指令后,全文搜索引擎可以通过后台服务器的处理,返回与检索数据对应的检索结果数据,并将检索结果数据返回至搜索引擎提供给用户的用户界面,以完成整个检索过程。在数据库索引层级,每个数据库索引可以对应特定的目标分词器和分词数据库,使得数据检索过程中的分词策略更加灵活,因此,可以提高数据检索的准确率和效率。
根据本公开的一些示例性实施例,确定目标数据库索引的索引类型,并根据索引类型确定远程获取关键词;根据远程获取关键词生成远程分词获取请求,并根据远程分词获取请求获取远程分词;将获取到的远程分词添加至分词数据库中,以对分词数据库进行更新操作。索引类型可以是目标数据库索引对应的类型,每个数据库索引具有与自身对应的索引类型。索引类型可以与该目标数据库索引对应的业务逻辑处理类型对应。远程获取关键词可以是在进行远程分词调用操作时所采用的关键词。远程分词获取请求可以是获取远程分词数据库中的分词内容所采用的请求。远程分词可以是从远程分词数据库中获取到的用于更新分词数据库的分词。
参考图8,图8示意性示出了对分词数据库进行远程热更新的流程图。在步骤S810中,确定出目标数据库索引对应的索引类型,并根据索引类型确定该目标数据库索引对应的业务逻辑处理类型,根据索引类型对应的业务逻辑处理类型可以确定出远程获取关键词。在步骤S820中,通过配置远程获取关键词的接口,可以生成远程获取请求,通过将远程分词获取请求获取远程分词数据库中的远程分词。在步骤S830中,将远程分词添加至分词数据库中,以完成针对分词数据库的更新操作。下述代码示意性示出了配置远程扩展字典的配置过程。
<entry key="remote_ext_dict">http://127.0.0.1:8000/dic/segmentation/laws/SEGMENTATION</entry>
其中,laws可以是索引对应的标识符,通过该命令可以远程获取对应laws下的分词,无需任务操作即可实现远程自动获取。由于个数据库索引对应特定的目标分词器和分词数据库,因此,可以隔离各数据库索引对应的分词数据库的分词加载过程,可以更加灵活地支持分词器。
根据本公开的另一示例性实施例,确定远程分词获取操作的分词获取周期,以根据分词获取周期获取远程分词;记录远程分词获取操作的获取时间值;通过远程分词获取请求确定分词修改时间值;如果分词修改时间值与获取时间值不一致,则获取远程分词。远程分词获取操作可以是从远程的分词数据库中获取分词的操作。分词获取周期可以是两次远程获取分词操作之间所间隔的时间段所形成的周期。远程分词可以是从远程分词数据库中获取到的分词。获取时间值可以是进行远程分词获取操作时所对应的时间值。分词修改时间值可以是最近一次对分词数据库中的分词进行修改更新操作所对应的时间值。
由于本示例实施例中提供的分词策略,在进行分词操作时,可以提供基本的分词库,也可以通过远程热更新的功能扩展分词库。当进行远程热更新的操作时,可以配置远程获取关键词的接口,生成远程分词获取请求以获取远程分词。举例而言,默认远程获取分词的访问周期可以是一分钟同步一次,另外,为了更高效地加载分词,在分词数据库更新过程中,并不是每次都会加载关键词,而是先通过超文本传输协议(HyperTextTransferProtocol,HTTP)的head请求判断分词修改时间值,即Last-Modified,Last-Modified可以表示此文件在服务器端的最后修改时间。参数Last-Modified可以是缓存到内存中的,当访问到时间不一致的时候才会发起远程分词获取请求到服务器,以获取远程分词,通过上述实现过程可以避免重复加载分词的问题。
在对IK分词器进行远程分词库调用时,可以指定一个与目标数据库索引对应的远程分词数据库,该远程分词数据库可以是基于索引定制的分词库,区别于其他的数据库索引对应的分词数据库,这样可以保证分词库的独立性。
需要说明的是,本公开所使用的术语“第一”、“第二”等,仅是为了区分不同的分词器、分词数据库,并不应对本公开造成任何限制。
综上所述,获取检索数据,并确定检索数据对应的目标数据库索引;确定与目标数据库索引对应的目标分词器;其中,目标数据库索引通过关联映射关系与目标分词器相对应;确定与目标分词器对应的分词数据库;基于分词数据库并通过目标分词器确定检索数据对应的向量化表示;根据向量化表示的检索数据在目标数据库索引对应的数据库中确定与检索数据对应的检索结果数据。一方面,目标数据库索引通过关联映射关系与目标分词器对应,可以使不同的数据库索引对应不同的分词器,各分词器对应不同的分词数据库,实现ES索引层级的分词策略。另一方面,在进行分词处理操作时,可以提供与目标分词对应的基本分词库,并且可以扩展分词,支持分词数据库的远程热更新功能,使得分词数据库更易扩展。又一方面,由于每个数据库索引可以通过关联映射关系与特定的目标分词器和分词数据库,因此,各个ES索引具有对应的分词库,可以隔离分词器的分词加载的过程,灵活的支持分词器,使得分词策略更加灵活。
需要说明的是,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
此外,在本示例实施例中,还提供了一种数据检索装置。参考图9,该数据检索装置可以包括:索引确定模块910、分词器确定模块920、分词库确定模块930、向量化处理模块940以及结果确定模块950。
具体的,索引确定模块910可以用于获取检索数据,并确定检索数据对应的目标数据库索引;分词器确定模块920可以用于确定与目标数据库索引对应的目标分词器;其中,目标数据库索引通过关联映射关系与目标分词器相对应;分词库确定模块930可以用于确定与目标分词器对应的分词数据库;向量化处理模块940可以用于基于分词数据库并通过目标分词器确定检索数据对应的向量化表示;结果确定模块950可以用于根据向量化表示的检索数据在目标数据库索引对应的数据库中确定与检索数据对应的检索结果数据。
数据检索装置900可以根据检索数据确定出与该检索数据对应的目标数据库索引,由于目标数据库索引与目标分词器之间存在映射关系,则可以通过映射关系信息确定出目标数据库索引对应的目标分词器,目标分词器对应特定的分词数据库,基于分词数据库并通过目标分词器可以确定出检索数据的向量化表示,根据向量化表示的检索数据可以从目标数据库索引对应的数据库中确定检索数据对应的检索结果数据,由于目标数据库索引与目标分词器之间存在映射关系,因此,不同的数据库索引具有特定的目标分词器和分词数据库使得分词处理过程更加灵活,可以提高数据检索的效率,是一种行之有效的数据检索装置。
在本公开的一种示例性实施方案中,索引确定模块包括索引确定单元,用于确定多个数据库索引以及各数据库索引分别对应的索引标签;确定检索数据与各索引标签之间的匹配度,根据匹配度确定目标数据库索引。
在本公开的一种示例性实施方案中,分词器确定模块包括分词器生成单元,用于确定与目标数据库索引对应的初始分词器;获取初始分词器的配置属性;其中,配置属性包括分词器属性和分析器属性;对分词器属性与分析器属性进行配置操作,以生成与目标数据库索引对应的目标分词器。
在本公开的一种示例性实施方案中,数据检索装置还包括映射关系信息配置模块,用于获取目标数据库索引的映射关系信息模板;从目标分词器中确定分词器属性值与分析器属性值;将分词器属性值与分析器属性值添加至映射关系信息模板,以生成目标数据库索引的映射关系信息;根据映射关系信息调用目标分词器。
在本公开的一种示例性实施方案中,向量化处理模块包括向量化处理单元,用于基于分词数据库确定与检索数据对应的检索关键词;基于检索关键词并通过目标分词器对检索数据进行向量化处理;将经过向量化处理的检索数据作为检索数据对应的向量化表示。
在本公开的一种示例性实施方案中,分词库确定模块包括分词库更新单元,用于确定目标数据库索引的索引类型,并根据索引类型确定远程获取关键词;根据远程获取关键词生成远程分词获取请求,并根据远程分词获取请求获取远程分词;将获取到的远程分词添加至分词数据库中,以对分词数据库进行更新操作。
在本公开的一种示例性实施方案中,分词库更新单元包括分词库更新子单元,用于确定远程分词获取操作的分词获取周期,以根据分词获取周期获取远程分词;记录远程分词获取操作的获取时间值;通过远程分词获取请求确定分词修改时间值;如果分词修改时间值与获取时间值不一致,则获取远程分词。
上述中各虚拟数据检索装置模块的具体细节已经在对应的数据检索方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了数据检索装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
下面参照图10来描述根据本发明的这种实施例的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030、显示单元1040。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1010执行,使得所述处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1021和/或高速缓存存储单元1022,还可以进一步包括只读存储单元(ROM)1023。
存储单元1020还可以包括具有一组(至少一个)程序模块1025的程序/实用工具1024,这样的程序模块1025包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1070(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
参考图11所示,描述了根据本发明的实施例的用于实现上述方法的程序产品1100,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。