数据搜索方法、装置、设备及存储介质
文献发布时间:2023-06-19 09:27:35
技术领域
本申请涉及数据搜索技术领域,具体而言,涉及一种数据搜索方法、装置、设备及存储介质。
背景技术
在使用搜索引擎时,如何让能够回答使用者提问的内容排序靠前一直是一个未有标准答案的话题。
现有的技术中一般在获取到使用者的搜索语句后,会对搜索语句进行分词,然后根据搜索语句的各分词和各回答文档的分词的组合方式去给各回答文档评分,并根据评分结果,将各回答文档进行排序后反馈给用户。
但是这样的处理方式由于文件格式的不同,每个数据源都有自己对应的字段,如果直接根据问题对各文档进行搜索,会造成搜索结果不合理影响用户体验。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种数据搜索方法、装置、设备及存储介质,以解决现有技术中直接根据问题对各文档进行搜索,造成搜索结果不合理,影响用户体验的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请一实施例提供了一种数据搜索方法,所述方法包括:
对搜索语句进行分词,得到搜索关键词;
根据所述搜索关键词,从数据库中获取包括所述搜索关键词的至少一个候选文件;
根据所述候选文件中预设功能字段对应的数据内容,计算所述候选文件的评分;
根据至少一个所述候选文件的评分,向客户端返回所述搜索语句对应的搜索结果。
可选地,所述预设功能字段包括:多个功能字段,所述根据所述候选文件中预设功能字段对应的数据内容,计算所述候选文件的评分,包括:
根据所述候选文件中每个功能字段对应的数据内容,计算所述候选文件的一个内容评分;
根据所述候选文件的多个内容评分,计算所述候选文件的评分。
可选地,所述根据所述候选文件中每个功能字段对应的数据内容,计算所述候选文件的一个内容评分,包括:
获取所述每个功能字段对应的数据内容长度,和所述候选文件中所有功能字段对应数据内容的平均长度;
根据所述搜索关键词和所述每个功能字段对应的数据内容,确定所述搜索关键词在所述每个功能字段对应的内容中的出现频次;
根据所述搜索关键词在所述至少一个候选文件中的频次,确定所述搜索关键词的权重;
根据所述每个功能字段对应的数据内容长度、所述平均长度、所述出现次数和所述搜索关键词的权重,计算所述候选文件的一个内容评分。
可选地,所述候选文件为不可更新文件;所述根据所述候选文件中预设功能字段对应的数据内容,计算所述候选文件的评分之前,所述方法还包括:
根据所述预设功能字段的名称索引,采用所述候选文件对应的第一字段映射关系,从所述候选文件中确定初始字段的数据内容为所述预设功能字段对应的数据内容;所述第一字段映射关系为:功能字段和初始字段的数据内容的映射关系。
可选地,所述候选文件为:可更新文件,所述根据所述候选文件中预设功能字段对应的数据内容,计算所述候选文件的评分之前,所述方法还包括:
根据所述预设功能字段的名称索引,采用所述候选文件对应的第二字段映射关系,确定所述名称索引对应的初始字段,其中,所述第二字段映射关系为:功能字段和初始字段的映射关系,所述第二字段映射关系中,功能字段的类型预先声明为:初始字段的别名;
根据所述初始字段,从所述候选文件中确定所述初始字段对应的数据内容为所述预设功能字段对应的数据内容。
可选地,所述根据所述搜索关键词,从数据库中获取包括所述搜索关键词的至少一个候选文件之前,所述方法还包括:
确定所述候选文件对应的所述第一字段映射关系;
将所述第一字段映射关系,和所述候选文件存储至所述数据库中。
可选地,所述根据所述搜索关键词,从数据库中获取包括所述搜索关键词的至少一个候选文件之前,所述方法还包括:
确定所述候选文件对应的所述第二字段映射关系;
将所述第二字段映射关系,和所述候选文件存储至所述数据库中。
可选地,所述候选文件为:表格文件中的表格,所述多个功能字段包括:标题字段和内容字段;
其中,所述标题字段对应的数据内容包括:所述表格中条目名称的数据内容;
所述内容字段对应的数据内容包括:所述表格中所述条目名称之外的其他字段的数据内容。
可选地,所述候选文件为:网页文件,所述多个功能字段包括:标题字段和内容字段;
其中,所述标题字段对应的数据内容包括:所述网页文件中标题字段的数据内容;
所述内容字段对应的数据内容包括:所述网页文件中主体字段的数据内容。
可选地,所述候选文件为:非文字文件,所述多个功能字段包括:标题字段和内容字段;
其中,所述标题字段对应的数据内容包括:所述非文字文件中文件名字段的数据内容;
所述内容字段对应的数据内容包括:所述非文字文件中节点内容字段的数据内容。
可选地,所述多个功能字段还包括:画布字段、作者字段、修改日期字段、节点字段;
其中,所述画布字段对应的数据内容包括:所述非文字文件中画布名字段的数据内容;
所述作者字段对应的数据内容包括:所述非文字文件中创建人字段的数据内容;
所述修改日期字段对应的数据内容包括:所述非文字文件中最后修改日期字段的数据内容;
所述节点字段对应的数据内容包括:所述非文字文件中节点段的数据内容。
第二方面,本申请另一实施例提供了一种数据搜索装置,所述装置包括:分词模块、获取模块、计算模块和返回模块,其中:
所述分词模块,用于对搜索语句进行分词,得到搜索关键词;
所述获取模块,用于根据所述搜索关键词,从数据库中获取包括所述搜索关键词的至少一个候选文件;
所述计算模块,用于根据所述候选文件中预设功能字段对应的数据内容,计算所述候选文件的评分;
所述返回模块,用于根据至少一个所述候选文件的评分,向客户端返回所述搜索语句对应的搜索结果。
可选地,所述计算模块,具体用于根据所述候选文件中每个功能字段对应的数据内容,计算所述候选文件的一个内容评分;根据所述候选文件的多个内容评分,计算所述候选文件的评分。
可选地,所述装置还包括:确定模块,其中:
所述获取模块,具体用于获取所述每个功能字段对应的数据内容长度,和所述候选文件中所有功能字段对应数据内容的平均长度;
所述确定模块,用于根据所述搜索关键词和所述每个功能字段对应的数据内容,确定所述搜索关键词在所述每个功能字段对应的内容中的出现频次;根据所述搜索关键词在所述至少一个候选文件中的频次,确定所述搜索关键词的权重;
所述计算模块,具体用于根据所述每个功能字段对应的数据内容长度、所述平均长度、所述出现次数和所述搜索关键词的权重,计算所述候选文件的一个内容评分。
可选地,所述确定模块,具体用于根据所述预设功能字段的名称索引,采用所述候选文件对应的第一字段映射关系,从所述候选文件中确定初始字段的数据内容为所述预设功能字段对应的数据内容;所述第一字段映射关系为:功能字段和初始字段的数据内容的映射关系。
可选地,所述确定模块,具体用于根据所述预设功能字段的名称索引,采用所述候选文件对应的第二字段映射关系,确定所述名称索引对应的初始字段,其中,所述第二字段映射关系为:功能字段和初始字段的映射关系,所述第二字段映射关系中,功能字段的类型预先声明为:初始字段的别名;根据所述初始字段,从所述候选文件中确定所述初始字段对应的数据内容为所述预设功能字段对应的数据内容。
可选地,所述装置还包括:存储模块,其中:
所述确定模块,具体用于确定所述候选文件对应的所述第一字段映射关系;
所述存储模块,用于将所述第一字段映射关系,和所述候选文件存储至所述数据库中。
可选地,所述确定模块,具体用于确定所述候选文件对应的所述第二字段映射关系;
所述存储模块,具体用于将所述第二字段映射关系,和所述候选文件存储至所述数据库中。
第三方面,本申请另一实施例提供了一种数据搜索设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当数据搜索设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面任一所述方法的步骤。
第四方面,本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一所述方法的步骤。
本申请的有益效果是:采用本申请提供的数据搜索方法,在根据分词后的搜索关键词在数据库中确定至少一个候选文件后,是根据候选文件中预设功能字段对应的数据内容,计算各候选文件的评分,再根据至少一个候选文件的评分,向客户端反馈搜索语句对应的搜索结果,由于候选文件中包括预设的功能字段,统一了不同数据来源的候选文件的格式,使得即使候选文件的类型不同或数据源格式不同,也可以保证各候选文件的同一个预设功能字段中的同一个词的权重不变,使得不同数据源中功能相似的功能字段对同一个查询关键词共享评分。如此,根据候选文件中预设功能字段对应的数据内容计算候选文件的评分,继而基于候选文件的评分返回的搜索结果更合理,提高搜索准确度,从而提高用户的搜索体验。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例提供的数据搜索方法的流程示意图;
图2为本申请另一实施例提供的数据搜索方法的流程示意图;
图3为本申请另一实施例提供的数据搜索方法的流程示意图;
图4为本申请另一实施例提供的数据搜索方法的流程示意图;
图5为本申请一实施例提供的数据搜索装置的结构示意图;
图6为本申请另一实施例提供的数据搜索装置的结构示意图;
图7为本申请一实施例提供的数据搜索设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
为方便对本申请的理解,下述对本申请涉及的部分名词进行解释说明:
Elasticsearch:一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
索引:elasticsearch存放相似文档的单位,相当于一张表格。启用一个新的单位来存放某个类别的文档的操作叫做创建新的索引。
文档:搜索引擎中指包含一条数据完整所需信息的数据单位。相当于表格中的一行。
字段:文档中的包含的信息的名称,相当于表格的栏的名称。
字段类型:字段储存的数据的格式,如数字,日期,字符串等。每个字段有且仅有一个字段类型。对于一个尚未设置类型的字段,其对应的字段类型可以在创建索引时设置,或者在存入文档时让elasticsearch自动识别并设置。字段一旦被设置则不能被更改。一个设置好类型的字段不能储存别的格式的数据,比如当前字段类型为数字,则就不能往该字段内储存文字。
别名:字段类型的一种,对应另一个特定字段。引用该文档的别名字段的时候,可引用到对应的字段的值。需要在创建索引时声明,并注明该别名类型是哪个字段的映射。
如下结合多个具体的应用示例,对本申请实施例所提供的一种数据搜索方法进行解释说明。图1为本申请一实施例提供的一种数据搜索方法的流程示意图,本申请提供的方法应用于安装有Elasticsearch这一搜索引擎的服务器上,如图1所示,该方法包括:
S101:对搜索语句进行分词,得到搜索关键词。
其中,在获取到客户端通过Elasticsearch搜索引擎的搜索框输入的搜索语句后,服务器对收到的搜索语句进行分词处理,从而实现从关键词的粒度对搜索语句问题进行改变,将搜索语句拆分为至少一个查询关键词,从而实现关键词解耦的效果。例如搜索语句可以为“上单攻略”,经过分词处理后可以将搜索语句拆分为了“上单”和“攻略”这两个搜索关键词。该客户端可以为搜索客户端,即安装并运行有预设搜索引擎的客户端。
S102:根据搜索关键词,从数据库中获取包括搜索关键词的至少一个候选文件。
其中,每个候选文件为包括搜索关键词的文件。其中,搜索关键词的数量可以为一个,也可以为多个。若为多个,则该每个候选文件为包括所有搜索关键词或者部分搜索关键词的文件。
示例地,在本申请的一个实施例中,候选文件可以为多种预设类型中任一类型的候选文件,即,该至少一个候选文件中不同候选文件的类型可能相同,也可以相同。该多种预设类型例如可以包括:表格文件中的表格、网页文件或非文字文件(例如脑图文件等)中的至少两种类型,具体候选文件的类型可以根据用户需要灵活调整,并不以上述实施例给出的为限。
其中,搜索候选文件的过程中,可以在每个候选文件中对所有搜索关键词的搜索,若某个候选文件中缺失某个搜索关键词时,Elasticsearch默认该候选文件中的该关键词字段内容为空字符串。
S103:根据候选文件中预设功能字段对应的数据内容,计算候选文件的评分。
示例地,在一些可能的实施例中,例如可以根据预设功能字段对应的数据内容,得到该候选文档对应该预设功能字段的评分,根据该预设功能字段的评分,基于该预设功能字段的预设权重,计算候选文件的评分。
S104:根据至少一个候选文件的评分,向客户端返回搜索语句对应的搜索结果。
示例地,在一些可能的实施例中,例如可以根据至少一个候选文件的目标评分,对各候选文件进行排序,获取排名靠前的预设个数个候选文件,并通过搜索结果返回给客户端,客户端在获取到搜索结果后,在显示界面上显示搜索结果。又或者,也可将所有候选文件的排序,通过搜索结果返回给客户端,而客户端在接收到搜索结果后,为了节省展示界面的篇幅,仅将排名靠前的预设个数候选文件直接展示给用户,其他候选文件被折叠,用户在查看完展示的候选文件后,需要点击界面上的查看按钮,例如可以为“查看更多”,才能将其他候选文件展开以供用户查看。应当理解上述返回搜索结果的方式仅为示例性说明,具体返回搜索结果的方式可以根据用户需要灵活调整,并不以上述实施例给出的为限。
采用本申请提供的数据搜索方法,在根据分词后的搜索关键词在数据库中确定至少一个候选文件后,是根据候选文件中预设功能字段对应的数据内容,计算各候选文件的评分,再根据至少一个候选文件的评分,向客户端反馈搜索语句对应的搜索结果,由于候选文件中包括预设的功能字段,统一了不同数据来源的候选文件的格式,使得即使候选文件的类型不同或数据源格式不同,也可以保证各候选文件的同一个预设功能字段中的同一个词的权重不变,使得不同数据源中功能相似的功能字段对同一个查询关键词共享评分。如此,根据候选文件中预设功能字段对应的数据内容计算候选文件的评分,继而基于候选文件的评分返回的搜索结果更合理,提高搜索准确度,从而提高用户的搜索体验。
并且,该方案中在计算该每个候选文件的评分时,是以关键词为粒度来计算评分的,可使得候选文件的目标评分的计算更准确,提高搜索结果中各文件的准确度。
可选地,在上述实施例的基础上,本申请实施例还可提供一种数据搜索方法,如下结合附图对上述方法中候选文件的评分过程进行示例说明。图2为本申请另一实施例提供的一种数据搜索方法的流程示意图,如图2所示,S103可包括:
S105:根据候选文件中每个功能字段对应的数据内容,计算候选文件的一个内容评分。
可选地,在本申请的一个实施例中,例如可以基于如下至少一个条件,计算该每个候选文件的一个内容评分:内容评分与每个功能字段对应的数据内容中出现搜索关键词的频率正相关,与该每个功能字段对应的数据内容的长度负相关,与该搜索关键词出现在所有文件中的几率成负相关等。
其中,前两者是为了保证搜索关键词在每个功能字段对应的数据内容中的占比,从而达到保证候选文件中每个功能字段对应的数据内容与搜索语句的相关度,而将搜索关键词在所有文件中出现的频率作为负相关是为了削减无关紧要的词汇的权重。举例说明,以搜索语句为“上单的攻略”为例进行说明,对该搜索语句进行分词后,该搜索语句被分词为“上单”、“的”、“攻略”这三个搜索关键词,其中,由于搜索关键词“的”在所有功能字段对应的数据内容中的高频出现,仅包含了搜索关键词“的”的功能字段对应的数据内容的评分会比包含了搜索关键词“上单”或搜索关键词“攻略”的功能字段对应的数据内容低上不少。
其中,候选文件的一个内容评分用于表征该候选文件中一个功能字段对应的数据内容与搜索关键词的相关度,如此,对于多个功能字段,通过执行该S105便可得到该候选文件的多个内容评分。内容评分越高,可用于表征对应功能字段所对应的数据内容与搜索关键词的相关度越高;反之评分越低,表征对应功能字段所对应的数据内容与搜索关键词的相关度越低。
示例地,如下分别以候选文件为:表格文件中的表格、网页文件或非文字文件为例进行说明。
若候选文件为表格文件中的表格时,多个功能字段包括:标题字段和内容字段;其中,标题字段对应的数据内容包括:表格中条目名称的数据内容;内容字段对应的数据内容包括:表格中条目名称之外的其他字段的数据内容。
若候选文件为网页文件时,多个功能字段包括:标题字段和内容字段;其中,标题字段对应的数据内容包括:网页文件中标题字段的数据内容;内容字段对应的数据内容包括:网页文件中主体字段的数据内容。
若候选文件为非文字文件时,多个功能字段包括:标题字段和内容字段;其中,标题字段对应的数据内容包括:非文字文件中文件名字段的数据内容;内容字段对应的数据内容包括:非文字文件中节点内容字段的数据内容。
示例的,以非文字文件为脑图文件为例进行说明,此时多个功能字段还包括:画布字段、作者字段、修改日期字段、节点字段;其中,画布字段对应的数据内容包括:非文字文件中画布名字段的数据内容;作者字段对应的数据内容包括:非文字文件中创建人字段的数据内容;修改日期字段对应的数据内容包括:非文字文件中最后修改日期字段的数据内容;节点字段对应的数据内容包括:非文字文件中节点段的数据内容。
可选地,在本申请的一个实施例中,计算候选文件的一个内容评分的方式例如可以为:获取每个功能字段对应的数据内容长度,和候选文件中所有功能字段对应数据内容的平均长度;根据搜索关键词和每个功能字段对应的数据内容,确定搜索关键词在每个功能字段对应的内容中的出现频次;根据搜索关键词在至少一个候选文件中的频次,确定搜索关键词的权重;根据每个功能字段对应的数据内容长度、平均长度、出现次数和搜索关键词的权重,计算候选文件的一个内容评分。
S106:根据候选文件的多个内容评分,计算候选文件的评分。
采用本申请提供的方法,由于各候选文件中均包括预设功能字段,保证了各候选文件在功能相似的功能字段中同一个搜索关键词的权重不变,从而避免了由于候选文件的格式不同,字段名称不同,导致各字段之间的权重无法界定,进而造成由于权重无法界定造成搜索结果的相关度的排序准确度不高的问题。
可选地,在上述实施例的基础上,本申请实施例还可提供一种数据搜索方法,如下结合附图对上述方法的实现过程进行示例说明。图3为本申请另一实施例提供的一种数据搜索方法的流程示意图,若候选文件为不可更新文件;如图3所示,S103之前,该方法还可包括:
S107:根据预设功能字段的名称索引,采用候选文件对应的第一字段映射关系,从候选文件中确定初始字段的数据内容为预设功能字段对应的数据内容。
其中,第一字段映射关系为:功能字段和初始字段的数据内容的映射关系;举例说明,例如初始字段为“文件名-文件名称”,表示当前初始字段的为字段名为“文件名”,字段内容为“文件名称”;第一字段映射关系为“标题-文件名称”即表示当前功能字段“标题”和初始字段的数据内容“文件名称”之间存在映射关系,在搜索过程中,若搜索关键词为“标题”,则可以直接根据该搜索关键词搜索到与该搜索关键词存在映射关系的文件名称;这种搜索方式由于可以直接根据第一字段映射关系获取对应的数据内容,所以提高了搜索速度。
可选地,在本申请的一个实施例中,第一字段映射关系可以存储在一个预设文档中,该文档用于存储第一字段映射关系,将初始字段-功能字段的映射加入至该预设文档中。
示例地,在本申请的一个实施例中,在对各候选文件进行存储之前,首先需要判断当前待存储候选文件中的内容是否存在更新需求,根据更新需求的判断结果,确定该候选文件的更新类型为可更新文件,还是不可更新文件。若确定当前待存储候选文件为不可更新文件,则根据当前待存储候选文件的文件类型,确定候选文件对应的第一字段映射关系;将第一字段映射关系,和候选文件存储至数据库中。
可选地,在上述实施例的基础上,本申请实施例还可提供一种数据搜索方法,如下结合附图对上述方法的实现过程进行示例说明。图4为本申请另一实施例提供的一种数据搜索方法的流程示意图,若候选文件为可更新文件;如图4所示,S103之前,该方法还可包括:
S108:根据预设功能字段的名称索引,采用候选文件对应的第二字段映射关系,确定名称索引对应的初始字段。
其中,第二字段映射关系为:功能字段和初始字段的映射关系,第二字段映射关系中,功能字段的类型预先声明为:初始字段的别名。
S109:根据初始字段,从候选文件中确定初始字段对应的数据内容为预设功能字段对应的数据内容。
别名即相当于该初始字段的昵称,在问题搜索过程中,可以通过别名作为中转站,先搜索到该功能字段,再通过第二字段映射关系将该功能字段映射至初始字段,就可以找到初始字段中的字段内容。举例说明:仍以初始字段为“文件名-文件名称”为例进行说明,表示当前初始字段的为字段名为“文件名”,字段内容为“文件名称”;第二字段映射关系为“标题-“文件名”-“文件名称””,即表示若当前需要搜索标题,则可以通过功能字段“标题”和第二字段映射关系,将搜索映射至与该功能字段存在映射关系的“文件名”字段,再通过获取“文件名”字段中的字段内容来完成搜索。
示例地,在本申请的一个实施例中,别名字段(即第二字段映射关系中的功能字段)的声明语句的格式例如可以为{标题:{类型:别名,目标:条目名称}},其中,条目名称例如可以为内容或文件名,以条目名称为内容为例,则在内容进行更新之后,根据该别名字段获取到的该文档的标题字段也会是更新后的内容。
示例地,在本申请的一个实施例中,在获取各候选文件之前,可判断待存储的候选文件的内容是否存在更新需求,根据更新需求的判断结果,确定该候选文件的更新类型为可更新文件,还是不可更新文件。若待存储的候选文件为可更新文件,则根据候选文件的更新类型,确定候选文件对应的第二字段映射关系;将第二字段映射关系,和候选文件存储至数据库中。
通过图3和图4提供的方法,可以将各候选文件中不同的字段搬到同一功能字段中,即各候选文件中功能相似的字段最终都统一到了同一个功能字段中,而在同一个功能字段中,同一个搜索关键词的权重是相同的,所以这些来自不同数据源且功能想起的不同字段,在统一成同个功能字段后权重也是相同的。
示例地,在本申请的一个实施例中,在将各候选文件存储在数据库之前,通过对各待存储候选文件进行数据预处理的方式来将各待存储候选文件中功能相似的字段最终都统一到了同一个功能字段中,举例说明:
若当前待存储候选文件为表格文件中的表格,则可以在去除表格的格式和图片后,保留表格文件中表格的那部分字段,例如可以包括:条目名称字段、背景技术字段、解决细节字段和后续处理字段等字段,并对于每个表格,建立预设功能字段和初始字段的映射关系。其中,预设功能字段可以包括:标题字段和内容字段;对于待存储表格文件的表格类的候选文件,该映射关系可包括:标题字段和第一初始字段的映射关系,以及内容字段和第二初始字段的映射关系,其中,该第一初始字段为条目名称字段,第二初始字段包括:背景技术字段、解决细节字段和后续处理字段与内容字段等,即该映射关系为:条目名称字段与标题字段的映射关系,或背景技术字段、解决细节字段和后续处理字段与内容字段的映射关系。
若当前待存储候选文件为网页文件,则可以在网页上做直观的初始字段划分,如网页上可能包括标题字段、媒体文件字段、主体字段和页尾字段等,随后使用爬虫爬取网页,并按照初始字段对各初始字段的内容进行解析,对于解析后的内容建立预设功能字段和初始字段的映射关系,将功能相似的字段统一加到同一个功能字段中,其中,预设功能字段可以包括:标题字段和内容字段;对于网页类的候选文件,该映射关系可包括:标题字段和第一初始字段的映射关系,以及内容字段和第二初始字段的映射关系,其中,该第一初始字段为标题字段,第二初始字段包括:媒体文件字段、主体字段和页尾字段等,即将标题字段对应的内容映射至“标题”功能字段,将主体字段和/或页尾字段中的内容映射至“内容”功能字段等。
若当前存储候选文件为非文字文件,例如可以为脑图文件,对脑图文件中包括的内容建立预设功能字段和初始字段的映射关系,将功能相似的字段统一加到同一个功能字段中,其中,预设功能字段例如可以包括:标题字段、画布字段、作者字段、修改日期字段和节点字段等;对于脑图类的候选文件,该映射关系可包括:脑图文件的文件名与功能字段“标题”之间的映射关系,建立脑图文件的画布名与功能字段“画布”之间的映射关系,建立脑图文件的创建人与功能字段“作者”之间的映射关系,建立脑图文件的最后修改日期与功能字段“修改日期”之间的映射关系,建立脑图文件的各节点与功能字段“节点”之间的映射关系。
其中,由于脑图节点的特殊性,一般一个节点内通常不是一句话,而是一些概念性的关键词或概括性的词语,比如由“皮肤”概念延伸出“商城”,“高精度模型”,“低精度模型”,“通信协议”等,并且越靠近根部的节点内容是一句完整的话的概率越小,为了避免这些节点内容由于篇幅较少,被包括大量篇幅的“内容”字段稀释,所以将这些节点内容单独作为一个或多个字段存放,例如可以为:根节点作为字段1;离根节点最近的几个节点叫字段2;离字段2中节点最近的子节点的集合作为字段3。
应当理解,上述映射关系具体如何建立可以根据用户需要灵活调整,映射关系并不以上述实施例给出的为限,映射时还需要考虑字段是否为可更新字段,随后根据对应的映射关系进行映射,可更新字段和不可更新字段分别对应的映射方法是图3-图4提供的方法,本申请在此不再赘述。
采用本申请提供的数据搜索方法,由于对所有的候选文件,在确定各候选文件中的各字段内容是否为可更新内容后,通过第一字段映射关系和第二字段映射关系实现初始字段内容和功能字段之间的映射,使得在对搜索问题进行搜索的过程中,可以直接根据功能字段和对应的字段映射关系获取字段内容,从而统一了不同数据来源的候选文件的格式,使得即使候选文件的类型不同或数据源格式不同,也可以保证各候选文件的同一个预设功能字段中的同一个词的权重不变,使得不同数据源中功能相似的功能字段对同一个查询关键词共享评分参数,进而提高了搜索的准确性。
下述结合附图对本申请所提供的数据搜索装置进行解释说明,该数据搜索装置可执行上述图1-图4任一数据搜索方法,其具体实现以及有益效果参照上述,如下不再赘述。
图5为本申请一实施例提供的数据搜索装置的结构示意图,如图5所示,该装置包括:分词模块201、获取模块202、计算模块203和返回模块204,其中:
分词模块201,用于对搜索语句进行分词,得到搜索关键词;
获取模块202,用于根据搜索关键词,从数据库中获取包括搜索关键词的至少一个候选文件;
计算模块203,用于根据候选文件中预设功能字段对应的数据内容,计算候选文件的评分;
返回模块204,用于根据至少一个候选文件的评分,向客户端返回搜索语句对应的搜索结果。
可选地,计算模块203,具体用于根据候选文件中每个功能字段对应的数据内容,计算候选文件的一个内容评分;根据候选文件的多个内容评分,计算候选文件的评分。
图6为本申请一实施例提供的数据搜索装置的结构示意图,如图6所示,该装置还包括:确定模块205,其中:
获取模块202,具体用于获取每个功能字段对应的数据内容长度,和候选文件中所有功能字段对应数据内容的平均长度;
确定模块205,用于根据搜索关键词和每个功能字段对应的数据内容,确定搜索关键词在每个功能字段对应的内容中的出现频次;根据搜索关键词在至少一个候选文件中的频次,确定搜索关键词的权重;
计算模块203,具体用于根据每个功能字段对应的数据内容长度、平均长度、出现次数和搜索关键词的权重,计算候选文件的一个内容评分。
可选地,确定模块205,具体用于根据预设功能字段的名称索引,采用候选文件对应的第一字段映射关系,从候选文件中确定初始字段的数据内容为预设功能字段对应的数据内容;第一字段映射关系为:功能字段和初始字段的数据内容的映射关系。
可选地,确定模块205,具体用于根据预设功能字段的名称索引,采用候选文件对应的第二字段映射关系,确定名称索引对应的初始字段,其中,第二字段映射关系为:功能字段和初始字段的映射关系,第二字段映射关系中,功能字段的类型预先声明为:初始字段的别名;根据初始字段,从候选文件中确定初始字段对应的数据内容为预设功能字段对应的数据内容。
如图6所示,该装置还包括:存储模块206,其中:
确定模块205,具体用于确定候选文件对应的第一字段映射关系;
存储模块206,用于将第一字段映射关系,和候选文件存储至数据库中。
可选地,确定模块205,具体用于确定候选文件对应的第二字段映射关系;
存储模块206,具体用于将第二字段映射关系,和候选文件存储至数据库中。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图7为本申请一实施例提供的数据搜索设备的结构示意图,该数据搜索设备可以集成于检索服务器或查询服务器。
该数据搜索设备包括:处理器501、存储介质502和总线503。
处理器501用于存储程序,处理器501调用存储介质502存储的程序,以执行上述图1-图4对应的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种程序产品,例如存储介质,该存储介质上存储有计算机程序,包括程序,该程序在被处理器运行时执行上述方法对应的实施例。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
- 数据采集、数据搜索方法及系统、电子设备、存储介质
- 一种数据搜索方法、装置、电子设备及存储介质