一种全文检索方法及系统与流程

文档序号:14870833发布日期:2018-07-06 23:32阅读:200来源:国知局
本发明涉及计算机
技术领域
,特别涉及一种全文检索方法及系统。
背景技术
:随着计算机技术的发展,数据呈现爆发式增长,如何从文件系统中快速检索到目标数据,对提高数据处理效率具有重要影响。hadoop提供的分布式文件系统可存储大量的数据,各个数据分散存储在不同的存储装置中,例如分散在各个磁盘中。用户在检索目标数据时,需要对存储装置进行逐个查看,以确定存储装置中是否存在目标数据。由于文件系统中存储的数据量较大,各个数据的存储位置也不尽相同,因此采用逐个查找存储装置的方式来检索目标数据,效率较低。技术实现要素:本发明实施例提供了一种全文检索方法及系统,能提高数据的检索效率。第一方面,本发明实施例提供了一种全文检索方法,包括:获取至少一个文件数据,确定每一个所述文件数据对应的描述信息;根据所述描述信息,构建每一个所述文件数据对应的文件索引;获取用户输入的检索信息;从所述检索信息中解析出至少一个检索关键词;从各个所述文件索引中确定与所述至少一个检索关键词对应的目标文件索引;确定所述目标文件索引对应的目标描述信息,并对所述目标描述信息进行展示。优选地,在所述获取用户输入的检索信息之后,进一步包括:获取用户输入的检索条件;所述从各个所述文件索引中确定与所述至少一个检索关键词对应的目标文件索引,包括:根据所述检索条件和各个所述检索关键词,确定所述目标文件索引。优选地,所述根据所述检索条件和各个所述检索关键词,确定所述目标文件索引,包括:根据所述检索条件携带的检索时间,以及各个所述文件索引对应的所述描述信息中的创建时间,从各个所述文件索引中确定出与所述检索时间对应的备选文件索引;从确定出的所述备选文件索引中确定与所述检索关键词对应的目标文件索引;优选地,所述根据所述检索条件和各个所述检索关键词,确定所述目标文件索引,包括:根据所述检索条件携带的检索文件类型,以及各个所述文件索引对应的所述描述信息中的创建文件类型,从各个所述文件索引中确定出与所述检索文件类型对应的备选文件索引;从确定出的所述备选文件索引中确定与所述检索关键词对应的目标文件索引;优选地,所述根据所述检索条件和各个所述检索关键词,确定所述目标文件索引,包括:根据所述检索条件中携带的拼接关系,对各个所述检索关键词进行组合;根据组合后的所述检索关键词,确定所述目标文件索引。优选地,进一步包括:在预设存储位置构建索引库;所述根据所述描述信息,构建每一个所述文件数据对应的文件索引,包括:利用预设的分词器对所述描述信息中的文件内容进行分词,获得至少一个内容关键词;利用预设的所述分词器对应的词典对所述至少一个内容关键词进行处理,并将处理后的所述内容关键词写入所述描述信息;利用预设的索引创建器将所述描述信息存入所述索引库,形成所述文件索引。优选地,进一步包括:接收用户输入的文件删除请求;根据所述文件删除请求,从所述至少一个文件数据中确定待删除文件数据;确定所述待删除文件对应的待删除描述信息以及待删除文件索引;利用所述索引创建器将所述待删除描述信息以及所述待删除文件索引从所述索引库中删除。第二方面,本发明实施例提供了一种全文检索系统,包括:索引构建单元、获取单元和检索单元;其中,所述索引构建单元,用于获取至少一个文件数据,确定每一个所述文件数据对应的描述信息,根据所述描述信息,构建每一个所述文件数据对应的文件索引;所述获取单元,用于获取用户输入的检索信息,并从所述检索信息中解析出至少一个检索关键词;所述检索单元,用于从各个所述文件索引中确定与所述至少一个检索关键词对应的目标文件索引;确定所述目标文件索引对应的目标描述信息,并对所述目标描述信息进行展示。优选地,所述获取单元,进一步用于获取用户输入的检索条件;所述检索单元,用于根据所述检索条件和各个所述检索关键词,确定所述目标文件索引。优选地,所述检索单元,用于根据所述检索条件携带的检索时间,以及各个所述文件索引对应的所述描述信息中的创建时间,从各个所述文件索引中确定出与所述检索时间对应的备选文件索引;从确定出的所述备选文件索引中确定与所述检索关键词对应的目标文件索引;优选地,所述检索单元,用于根据所述检索条件携带的检索文件类型,以及各个所述文件索引对应的所述描述信息中的创建文件类型,从各个所述文件索引中确定出与所述检索文件类型对应的备选文件索引;从确定出的所述备选文件索引中确定与所述检索关键词对应的目标文件索引;优选地,所述检索单元,用于根据所述检索条件中携带的拼接关系,对各个所述检索关键词进行组合;根据组合后的所述检索关键词,确定所述目标文件索引。优选地,进一步包括:设置单元;其中,所述设置单元,用于在预设存储位置构建索引库;所述索引构建单元,用于利用预设的分词器对所述描述信息中的文件内容进行分词,获得至少一个内容关键词;利用预设的所述分词器对应的词典对所述至少一个内容关键词进行处理,并将处理后的所述内容关键词写入所述描述信息;利用预设的索引创建器将所述描述信息存入所述索引库,形成所述文件索引。优选地,进一步包括:索引删除单元;其中,所述获取单元,进一步用于接收用户输入的文件删除请求;所述索引删除单元,用于根据所述文件删除请求,从所述至少一个文件数据中确定待删除文件数据;确定所述待删除文件对应的待删除描述信息以及待删除文件索引;利用所述索引创建器将所述待删除描述信息以及所述待删除文件索引从所述索引库中删除。本发明实施例提供了一种全文检索方法及系统,根据获取到的文件数据的描述信息生成各个文件数据对应的文件索引。当获取到用户输入的检索信息时,从检索信息中解析出检索关键词,并确定与检索关键词对应的目标文件索引,然后对目标文件索引对应的目标描述信息进行展示。由此实现对各个文件数据的自动检索,而无须采用逐个查找存储装置的方式来检索目标数据,从而提高了数据的检索效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一个实施例提供的一种全文检索方法的流程图;图2是本发明一个实施例提供的一种全文检索系统的结构示意图;图3是本发明另一个实施例提供的一种全文检索系统的结构示意图;图4是本发明又一个实施例提供的一种全文检索系统的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,本发明实施例提供了一种全文检索方法,该方法可以包括以下步骤:步骤101:获取至少一个文件数据,确定每一个所述文件数据对应的描述信息;步骤102:根据所述描述信息,构建每一个所述文件数据对应的文件索引;步骤103:获取用户输入的检索信息;步骤104:从所述检索信息中解析出至少一个检索关键词;步骤105:从各个所述文件索引中确定与所述至少一个检索关键词对应的目标文件索引;步骤106:确定所述目标文件索引对应的目标描述信息,并对所述目标描述信息进行展示。上述实施例中,根据获取到的文件数据的描述信息生成各个文件数据对应的文件索引。当获取到用户输入的检索信息时,从检索信息中解析出检索关键词,并确定与检索关键词对应的目标文件索引,然后对目标文件索引对应的目标描述信息进行展示。由此实现对各个文件数据的自动检索,而无须采用逐个查找存储装置的方式来检索目标数据,从而提高了数据的检索效率。本发明一个实施例中,该方法可以进一步包括:在预设存储位置构建索引库;则步骤102的具体实施方式,可以包括:利用预设的分词器对所述描述信息中的文件内容进行分词,获得至少一个内容关键词;利用预设的所述分词器对应的词典对所述至少一个内容关键词进行处理,并将处理后的所述内容关键词写入所述描述信息;利用预设的索引创建器将所述描述信息存入所述索引库,形成所述文件索引。在本实施例中,在本地文件系统中确定出待存放索引文件的存储位置,例如磁盘a,将其确定为索引库的存储位置,并在该存储位置构建索引库。然后构造索引创建器,索引创建器可创建文件索引,并将文件索引存放入索引库的位置,并设置其为追加方式。接着可配置分词器,例如ik分词器,可构建多个词库,例如扩展词库、禁用词库和同义词库,通过建立的词库调整分词器对应的词典,例如ikanalyzor的词典。当创建文件索引时,根据文件类型创建相应的文档描述,并设置相应属性域的内容,形成该文件数据的描述信息,其具体内容如表1所示。表1属性名称值filename文件名filedataname文件上传对象的名称content文件内容path文件路径type文件类型fileid文件标识符category种类createtime创建时间top_directory上级目录versionid版本号利用分词器对描述信息中的文件内容进行分词,形成多个内容关键词,并利用调整后的词典对内容关键词进行处理,例如,内容关键词中包括“高高”和“兴兴”两个词,可利用扩展词库将其合并为“高高兴兴”,并利用同义词库确定“高高兴兴”的同义词,例如确定出“高兴”和“快乐”。然后将处理后的内容关键词写入描述信息,替换原有的文件内容,并利用索引创建器将替换后的描述信息存入索引库,形成该文件数据对应的文件索引。由此,将各个文件索引统一在索引库进行存储,在检索时只需针对索引库所处存储位置进行检索,避免去各个磁盘查找的复杂性,从而进一步提高了数据的检索效率。本发明一个实施例中,该方法可以进一步包括:接收用户输入的文件删除请求;根据所述文件删除请求,从所述至少一个文件数据中确定待删除文件数据;确定所述待删除文件对应的待删除描述信息以及待删除文件索引;利用所述索引创建器将所述待删除描述信息以及所述待删除文件索引从所述索引库中删除。在这里,当接收到用户输入的文件删除请求时,需要删除相对应的文件索引,具体地,可从已获取的文件数据中确定出与文件删除请求相对应的待删除文件数据,将确定出的待删除文件数据进行删除,并确定该待删除文件数据对应的待删除描述信息以及待删除文件索引,然后利用索引创建器将该待删除文件索引和待删除描述信息进行删除。由此,在删除文件数据时,将其对应的文件索引也一并删除,避免无法通过文件索引获取具体的文件数据,从而提高检索的准确性。值得一提的是,当对文件数据进行移动或修改时,可先删除该文件对应的文件索引及描述信息,再根据修改的文件数据生成新的描述信息,重新建立修改后的文件数据的文件索引,由此在文件数据发生变更时,可自动创建新的文件索引,实现与文件数据同步,从而确保文件索引的准确性,以此提高检索的准确性。本发明一个实施例中,在步骤103之后,进一步包括:获取用户输入的检索条件;步骤105的具体实施方式,可以包括:根据所述检索条件和各个所述检索关键词,确定所述目标文件索引。在这里,用户可自定义检索条件,例如检索时间、检索文件类型和各个检索关键词的拼接关系等。在获取用户的检索信息之前,可预先设置文件名和文件内容在搜索结果排序过程中分别对应的权重值,例如,设置文件名的权重值大于文件内容的权重值,则检索出与检索信息对应的多个文件数据之后,按照文件名与检索信息的相关度进行排序,即权重值越高的文件数据排名越靠前。另外,还可配置ik分词器,利用预先建立的扩展词库、禁用词库和同义词库对检索关键词进行处理,有利于进一步提高检索准确性。具体地,本发明一个实施例中,所述根据所述检索条件和各个所述检索关键词,确定所述目标文件索引,包括:根据所述检索条件携带的检索时间,以及各个所述文件索引对应的所述描述信息中的创建时间,从各个所述文件索引中确定出与所述检索时间对应的备选文件索引;从确定出的所述备选文件索引中确定与所述检索关键词对应的目标文件索引。在本实施例中,用户输入的检索条件限制的检索时间范围,则可根据各个文件数据的描述信息中的createtime,即文件索引的创建时间进行筛选,例如,用户输入的检索时间为2017.10.1-2017.11.1,则将创建时间在此时间段内的文件索引作为备选文件索引,再从这些备选文件索引中确定与检索关键词相对应的目标文件索引,由此进一步了提高检索的准确性。该方法至少可通过以下程序语言实现:termbegin=newterm("ctreatetime",datebegin);termend=newterm("ctreatetime",dateend);queryrangequery=newtermrangequery("ctreatetime",begin.bytes(),end.bytes(),true,true);booleanquery.add(rangequery,occur.must).本发明一个实施例中,所述根据所述检索条件和各个所述检索关键词,确定所述目标文件索引,包括:根据所述检索条件携带的检索文件类型,以及各个所述文件索引对应的所述描述信息中的创建文件类型,从各个所述文件索引中确定出与所述检索文件类型对应的备选文件索引;从确定出的所述备选文件索引中确定与所述检索关键词对应的目标文件索引。用户除了可设置检索时间范围以外,还可设置检索文件类型,例如,用户设置的检索文件类型为word时,则检索时只会对doc和docx类型文件搜索,其它文件类型同理,由此可进一步提高检索的准确性。可以理解的是,当用户未对检索文件类型作特殊设置时,可默认检索全部文件类型。具体地,用户设置的检索文件类型与文件数据的格式的对应关系如表2所示。表2文件类型值全部所有格式worddoc、docxpdfpdfexcelxls、xlsxtxttxtpptppt、pptxpicturebmp、jpg、jpeg、png、gifvedioavi、wma、rmvb、mp4、flash、mp3、wav本发明一个实施例中,所述根据所述检索条件和各个所述检索关键词,确定所述目标文件索引,包括:根据所述检索条件中携带的拼接关系,对各个所述检索关键词进行组合;根据组合后的所述检索关键词,确定所述目标文件索引。在这里,用户除了对检索时间和检索文件类型进行设置外,还能设置高级检索,即通过下拉框选择“并且”“或者”“不含”,对各个检索关键词进行组合,以拼接查询条件,其中,“并且”是与运算,检索同时满足条件的文件索引;“或者”是或运算,满足一个即可;“不含”是非运算,去掉符合“不含”后面条件的文件索引。可以理解的是,当用户设置的检索条件包括检索时间和检索文件类型时,也可以通过设置其拼接关系来确定检索的组合关系,以拼接出不同的检索条件。由此可使用户自定义检索条件,有利于准确检索出符合用户需求的文件索引,提高用户体验。值得一提的是,在展示出相应的目标描述信息之后,还可向用户提供预览和下载相应文件数据的功能。例如,检索结果中有word、pdf、txt等类型的文件,用户点击文件后,可以通过属性域中的文件信息找到该文件,并缓存至浏览器实现预览。用户还可通过点击文件下方的下载按钮,可以通过属性域中的文件信息找到该文件并下载,由此可便于用户获取相应的文件数据,从而进一步提高用户体验。另外,由于lucene是一套用于全文检索和搜寻的开源程式库,由apache软件基金会支持和提供。lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。作为一个全文检索引擎,其具有如下突出的优点:1、索引文件格式独立于应用平台。lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。2、在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。3、优秀的面向对象的系统架构,使得对于lucene扩展的学习难度降低,方便扩充新功能。4、设计了独立于语言和文件格式的文本分析接口,索引器通过接受token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。5、已经默认实现了一套强大的查询引擎,用户无需自己编写代码即可使系统可获得强大的查询能力,lucene的查询实现中默认实现了布尔操作、模糊查询(fuzzysearch)、分组查询等等。并且,在java开发环境里lucene是一个成熟的免费开源工具,其具有跨平台性,能为软件开发人员提供一个简单易用的工具包,以此为基础建立更适合当前应用的全文检索引擎,因此可基于lucene建立面向hadoop文件系统的检索系统。如图2所示,本发明实施例提供了一种全文检索系统,包括:索引构建单元201、获取单元202和检索单元203;其中,所述索引构建单元201,用于获取至少一个文件数据,确定每一个所述文件数据对应的描述信息,根据所述描述信息,构建每一个所述文件数据对应的文件索引;所述获取单元202,用于获取用户输入的检索信息,并从所述检索信息中解析出至少一个检索关键词;所述检索单元203,用于从各个所述文件索引中确定与所述至少一个检索关键词对应的目标文件索引;确定所述目标文件索引对应的目标描述信息,并对所述目标描述信息进行展示。本发明一个实施例中,所述获取单元202,进一步用于获取用户输入的检索条件;所述检索单元203,用于根据所述检索条件和各个所述检索关键词,确定所述目标文件索引。本发明一个实施例中,所述检索单元203,用于根据所述检索条件携带的检索时间,以及各个所述文件索引对应的所述描述信息中的创建时间,从各个所述文件索引中确定出与所述检索时间对应的备选文件索引;从确定出的所述备选文件索引中确定与所述检索关键词对应的目标文件索引。本发明一个实施例中,所述检索单元203,用于根据所述检索条件携带的检索文件类型,以及各个所述文件索引对应的所述描述信息中的创建文件类型,从各个所述文件索引中确定出与所述检索文件类型对应的备选文件索引;从确定出的所述备选文件索引中确定与所述检索关键词对应的目标文件索引。本发明一个实施例中,所述检索单元203,用于根据所述检索条件中携带的拼接关系,对各个所述检索关键词进行组合;根据组合后的所述检索关键词,确定所述目标文件索引。如图3所示,本发明一个实施例中,该系统可以进一步包括:设置单元301;其中,所述设置单元301,用于在预设存储位置构建索引库;所述索引构建单元201,用于利用预设的分词器对所述描述信息中的文件内容进行分词,获得至少一个内容关键词;利用预设的所述分词器对应的词典对所述至少一个内容关键词进行处理,并将处理后的所述内容关键词写入所述描述信息;利用预设的索引创建器将所述描述信息存入所述索引库,形成所述文件索引。如图4所示。本发明一个实施例中,该系统可以进一步包括:索引删除单元401;其中,所述获取单元302,进一步用于接收用户输入的文件删除请求;所述索引删除单元401,用于根据所述文件删除请求,从所述至少一个文件数据中确定待删除文件数据;确定所述待删除文件对应的待删除描述信息以及待删除文件索引;利用所述索引创建器将所述待删除描述信息以及所述待删除文件索引从所述索引库中删除。上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。本发明实施例还提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明上述任一实施例提供的方法。本发明实施例还提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明上述任一实施例提供的方法。综上所述,本发明以上各个实施例至少具有如下有益效果:1、在本发明实施例中,根据获取到的文件数据的描述信息生成各个文件数据对应的文件索引。当获取到用户输入的检索信息时,从检索信息中解析出检索关键词,并确定与检索关键词对应的目标文件索引,然后对目标文件索引对应的目标描述信息进行展示。由此实现对各个文件数据的自动检索,而无须采用逐个查找存储装置的方式来检索目标数据,从而提高了数据的检索效率。2、在本发明实施例中,在预设存储位置构建索引库,然后利用索引创建器将描述信息存入索引库,形成文件索引。由此,将各个文件索引统一在索引库进行存储,在检索时只需针对索引库所处存储位置进行检索,避免去各个磁盘查找的复杂性,从而进一步提高了数据的检索效率。3、在本发明实施例中,当接收到用户输入的文件删除请求时,从已获取的文件数据中确定出与文件删除请求相对应的待删除文件数据,将确定出的待删除文件数据进行删除,并确定该待删除文件数据对应的待删除描述信息以及待删除文件索引,然后利用索引创建器将该待删除文件索引和待删除描述信息进行删除。由此,在删除文件数据时,将其对应的文件索引也一并删除,避免无法通过文件索引获取具体的文件数据,从而提高检索的准确性。4、在本发明实施例中,当对文件数据进行移动或修改时,先删除该文件对应的文件索引及描述信息,再根据修改的文件数据生成新的描述信息,重新建立修改后的文件数据的文件索引,由此在文件数据发生变更时,可自动创建新的文件索引,实现与文件数据同步,从而确保文件索引的准确性,以此提高检索的准确性。5、在本发明实施例中,能使用户自定义的检索条件,包括检索时间、检索文件类型以及各个检索条件和检索关键词的拼接关系等。由此有利于准确检索出符合用户需求的文件索引,提高用户体验。6、在本发明实施例中,在展示出相应的目标描述信息之后,还可向用户提供预览和下载相应文件数据的功能。由此可便于用户获取相应的文件数据,从而进一步提高用户体验。需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1