文件搜索方法及装置与流程

文档序号:11134180
文件搜索方法及装置与制造工艺

本发明涉及互联网领域,具体而言,涉及一种文件搜索方法及装置。



背景技术:

SVN(subversion)是一款文件管理系统,其用于管理工程项目中的文档、图片、代码等文件管理,能够记录文件每次修改的内容。如果需要查找SVN工程项目中特定版本的特定文件,当一个工程项目中的文件数量为m个,且每个文件平均经历过n次修改,那么搜索的复杂程度将会达到m×n。因此,当m与n的乘积结果达到较大数值时,意图在SVN工程项目中查找特定文件将会变得极为费时。

虽然SVN自带的搜索功能可以根据日志和提交者等标识来搜索特定文件,但是却无法通过文件内容来对文件进行搜索,如果希望根据文档中的具体语段或者特定一张图来查找这个文件,则只能逐个文件更新到历史每一个版本,然后打开文件再进行查找,其查找过程依然十分费时。

为此,相关技术中提供了Windows本地文件检索功能,其可以检索到指定目录下的文件或者文件夹名字包含该关键字的内容。这种方式仅限于采用文件名称进行检索,而不包含对文件内容的检索。对于SVN管理的本地文件而言,如果需要对每个版本进行检索,则在检索之前需要采用SVN版本管理逐个更新到特定版本之后才能开始进行搜索。

由此可见,Windows本地文件检索功能存在如下缺陷:

(1)无法搜索文档内容,而只能搜索文件或者文件夹名;

(2)缺少索引图片功能,无法利用图片搜索文件,更无法通过图文信息结合的方式来搜索文件;

(3)对于SVN版本控制系统而言,Windows的资源管理器并没有对SVN的日志建立索引,因此无法根据日志搜索SVN中的文件;

(4)SVN本地文件只有一个版本,因此windows资源管理的搜索功能只能搜索一个SVN版本文件。

此外,相关技术中还提供了SVN的日志搜索功能,其能够提供对于日志、文件路径、提交者、版本、提交日期等日志信息搜索,通过选中指定日志条目,可以查看文件位置。然而,该功能无法根据具体的文件内容来进行搜索,也无法根据图像信息来进行文件筛选或者搜索,因而无法实现图文信息结合的本地文件搜索。

由此可见,SVN的日志搜索功能存在如下缺陷:

(1)未能对文档内容建立索引,因此无法搜索文档内容;

(2)未能对图片建立索引并进行搜索,更无法提供图文信息结合的搜索功能。

进一步地,相关技术中还提供了一种SVN全文搜索系统及搜索方法,该方法能够实现Subversion文件库的全文搜索,其主要由提交侦测模块、变更文档抽取模块、变更文档索引模块、版本过滤器构建模块、修订版本更新文件过滤器构建模块和全文搜索执行模块组成,其中,各个模块所要实现的具体功能如下:

提交侦测模块负责侦测SVN版本库中文件的新增与变化情况;

变更文档抽取模块负责调用SVN版本库的函数指令从SVN版本库中获取当前版本的变更的文档集;

变更文档索引模块负责根据提取的变更文档集和发生变更的版本号,利用Lucene对变更文档集进行全文索引;

版本过滤器构建模块负责在SVN版本库中的版本变更时获取变更的文档,并提取变更的文档,建立版本的搜索过滤器;

修订版本更新文件过滤器构建模块负责获取修订版本过滤器存模块中相邻两个修订版本的搜索过滤器;

全文搜索执行模块负责获取搜索过滤器,访问Lucene索引搜索库。

然而,该技术方案虽然相对于上述两种解决方案有所改进,但是并没有明确不同文档的内容需要统一编码,不同文件编码方式不一致会降低搜索准确性和搜索效率;并且该技术方案在建立索引的时候只对文档内容建立索引,而忽视了SVN日志信息,仅能够通过文档内容进行搜索,而无法在日志文本与文档内文本之间建立关联搜索。除此之外,在建立索引过程中,由于缺少提取图片信息,因而也不能够对图像进行索引,进而无法通过单一的文档图片搜索到文档位置,也无法形成图文信息结合的搜索功能。

由此可见,上述SVN全文搜索系统及搜索方法存在如下缺陷:

(1)无法对图片建立索引并进行搜索,更无法提供图文信息结合的搜索方式;

(2)在文档信息提取过程中,无法提取文档中的图片,例如:PDF文档、EXCEL文档中的图片;

(3)没有考虑多种文档中格式编码的非一致性问题;

(4)建立索引仅针对文档内容建立索引,而未对SVN版本日志建立索引,从而无法建立日志文本和文档文本内容之间的关联。

综上所述,相关技术中所提供的上述技术方案均无法提供单独通过图片进行搜索或图文信息结合的搜索方式,而且还未考虑到在搜索过程中结合文件更新的属性信息进行搜索。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种文件搜索方法及装置,以至少解决相关技术中所提供的文件搜索方案无法提供单独通过图片进行搜索或图文信息结合的搜索方式,而且还未考虑到在搜索过程中结合文件更新的属性信息进行搜索的技术问题。

根据本发明实施例的一个方面,提供了一种文件搜索方法,包括:

从预设文件存储区域获取更新文件集合以及更新文件集合中每个文件对应的文件属性信息集合;从更新文件集合的每个文件中分别提取文本内容和/或图片内容;对获取到的文件属性信息集合以及提取到的文本内容和/或图片内容进行统一编码格式转换,并建立文件搜索索引。

可选地,从更新文件集合的每个文件中分别提取文本内容和/或图片内容包括:根据更新文件集合中包含的每个文件的文件名称后缀进行分类;从分类后未包含图片信息的第一类型文件中提取文本内容,和/或,从分类后包含图片信息的第二类型文件中分别提取图片内容或者提取文本内容和图片内容。

可选地,对文件属性信息集合以及文本内容和/或图片内容进行统一编码格式转换包括:判断文件属性信息集合所采用的编码格式与预定义的编码格式是否相同,如果不同,则将文件属性信息集合所采用的编码格式转换为预定义的编码格式;判断文本内容所采用的编码格式与预定义的编码格式是否相同,如果不同,则将文本内容所采用的编码格式转换为预定义的编码格式;和/或,从图片内容中提取图像特征,并判断图像特征所采用的编码格式与预定义的编码格式是否相同,如果不同,则将图像特征所采用的编码格式转换为预定义的编码格式。

可选地,建立文件搜索索引包括以下之一:当提取到文本内容时,在采用统一编码后的文本内容与文件属性信息集合之间建立关联索引,并在与图片内容对应的字段填入空字符串;当提取到图片内容时,在采用统一编码后的图片内容与文件属性信息集合之间建立关联索引,并在与文本内容对应的字段填入空字符串;当提取到文本内容和图片内容时,在采用统一编码后的文本内容、图片内容和文件属性信息集合三者之间建立关联索引。

可选地,在对文件属性信息集合以及文本内容和/或图片内容进行统一编码格式转换,并建立文件搜索索引之后,还包括:接收来自于用户终端的文本搜索信息和/或图片搜索信息,其中,文本搜索信息和/或图片搜索信息均采用预定义的编码格式,文本搜索信息是从用户在用户终端输入的文本信息中提取的一个或多个关键词且文本信息包括以下至少之一:文件本身包含的字符内容、文件属性信息集合中的部分或全部文件属性信息,图片搜索信息从用户在用户终端输入的图片信息中提取的图像特征;采用文件搜索索引查找与文本搜索信息对应的第一备选文本集合,和/或,与图片搜索信息对应的第二备选文件集合,和/或,与文本搜索信息和图片搜索信息对应的第三备选文件集合,其中,第一备选文本集合和第二备选文件集合中包含的文件数量为预先自定义,第三备选文件集合是由文本搜索信息对应的搜索结果与图片搜索信息对应的搜索结果进行逻辑与操作后得到的。

可选地,在采用文件搜索索引查找第一备选文本集合和/或第二备选文件集合之后,还包括:向用户终端返回第一备选文本集合、第二备选文件集合与第三备选文件集合中至少之一,其中,第一备选文本集合中的文件按照关键词匹配度由高到低进行排列,第二备选文本集合中的文件按照图像特征距离匹配度由高到低进行排列,在向用户终端返回第三备选文件集合时,优先显示第三备选文件集合。

可选地,更新文件集合为预设文件存储区域内存储的部分或全部文件在不同版本号之间发生过更新的文件。

可选地,文件属性信息集合包括以下至少之一:对文件进行更新的人员信息;文件更新时间;文件更新后的版本号;文件更新的日志信息;文件更新方式,其中,文件更新方式包括以下之一:新增文件、修改文件、删除文件。

根据本发明实施例的另一方面,还提供了一种文件搜索装置,包括:

获取模块,用于从预设文件存储区域获取更新文件集合以及更新文件集合中每个文件对应的文件属性信息集合;提取模块,用于从更新文件集合的每个文件中分别提取文本内容和/或图片内容;处理模块,用于对获取到的文件属性信息集合以及提取到的文本内容和/或图片内容进行统一编码格式转换,并建立文件搜索索引。

可选地,提取模块包括:分类单元,用于根据更新文件集合中包含的每个文件的文件名称后缀进行分类;提取单元,用于从分类后未包含图片信息的第一类型文件中提取文本内容,和/或,从分类后包含图片信息的第二类型文件中分别提取图片内容或者提取文本内容和图片内容。

可选地,处理模块包括:第一处理单元,用于判断文件属性信息集合所采用的编码格式与预定义的编码格式是否相同,如果不同,则将文件属性信息集合所采用的编码格式转换为预定义的编码格式;第二处理单元,用于判断文本内容所采用的编码格式与预定义的编码格式是否相同,如果不同,则将文本内容所采用的编码格式转换为预定义的编码格式;和/或,从图片内容中提取图像特征,并判断图像特征所采用的编码格式与预定义的编码格式是否相同,如果不同,则将图像特征所采用的编码格式转换为预定义的编码格式。

可选地,处理模块包括:第三处理单元,用于当提取到文本内容时,在采用统一编码后的文本内容与文件属性信息集合之间建立关联索引,并在与图片内容对应的字段填入空字符串;或者,当提取到图片内容时,在采用统一编码后的图片内容与文件属性信息集合之间建立关联索引,并在与文本内容对应的字段填入空字符串;或者,当提取到文本内容和图片内容时,在采用统一编码后的文本内容、图片内容和文件属性信息集合三者之间建立关联索引。

可选地,上述装置还包括:接收模块,用于接收来自于用户终端的文本搜索信息和/或图片搜索信息,其中,文本搜索信息和/或图片搜索信息均采用预定义的编码格式,文本搜索信息是从用户在用户终端输入的文本信息中提取的一个或多个关键词且文本信息包括以下至少之一:文件本身包含的字符内容、文件属性信息集合中的部分或全部文件属性信息,图片搜索信息从用户在用户终端输入的图片信息中提取的图像特征;查找模块,用于采用文件搜索索引查找与文本搜索信息对应的第一备选文本集合,和/或,与图片搜索信息对应的第二备选文件集合,和/或,与文本搜索信息和图片搜索信息对应的第三备选文件集合,其中,第一备选文本集合和第二备选文件集合中包含的文件数量为预先自定义,第三备选文件集合是由文本搜索信息对应的搜索结果与图片搜索信息对应的搜索结果进行逻辑与操作后得到的。

可选地,上述装置还包括:反馈模块,用于向用户终端返回第一备选文本集合、第二备选文件集合与第三备选文件集合中至少之一,其中,第一备选文本集合中的文件按照关键词匹配度由高到低进行排列,第二备选文本集合中的文件按照图像特征距离匹配度由高到低进行排列,在向用户终端返回第三备选文件集合时,优先显示第三备选文件集合。

可选地,更新文件集合为预设文件存储区域内存储的部分或全部文件在不同版本号之间发生过更新的文件。

可选地,文件属性信息集合包括以下至少之一:对文件进行更新的人员信息;文件更新时间;文件更新后的版本号;文件更新的日志信息;文件更新方式,其中,文件更新方式包括以下之一:新增文件、修改文件、删除文件。

在本发明实施例中,采用从预设文件存储区域获取更新文件集合以及更新文件集合中每个文件对应的文件属性信息集合并从更新文件集合的每个文件中分别提取文本内容和/或图片内容的方式,通过对获取到的文件属性信息集合以及提取到的文本内容和/或图片内容进行统一编码格式转换,并建立文件搜索索引,达到了不仅可以针对文件名称或者路径进行检索,而且还可以提取文件中的文本内容和/或图片内容,对文本内容和/或图片内容建立索引,另外还进一步支持根据文件属性信息集合进行检索的目的,从而实现了提升检索效率和准确率的技术效果,进而解决了相关技术中所提供的文件搜索方案无法提供单独通过图片进行搜索或图文信息结合的搜索方式,而且还未考虑到在搜索过程中结合文件更新的属性信息进行搜索的技术问题。

附图说明

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

图1是根据本发明实施例的文件搜索方法的流程图;

图2是根据本发明实施例的文件搜索装置的流程图;

图3是根据本发明优选实施例的文件搜索装置的流程图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种文件搜索方法的实施例,该方法可以适用于基于python的flask框架开发的web应用程序,主要包括:在服务器端提供索引的建立功能以及在客户端提供搜索功能。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的文件搜索方法的流程图,如图1所示,该方法包括如下步骤:

步骤S10,从预设文件存储区域获取更新文件集合以及更新文件集合中每个文件对应的文件属性信息集合;

步骤S12,从更新文件集合的每个文件中分别提取文本内容和/或图片内容;

步骤S14,对获取到的文件属性信息集合以及提取到的文本内容和/或图片内容进行统一编码格式转换,并建立文件搜索索引。

通过上述步骤,可以采用从预设文件存储区域获取更新文件集合以及更新文件集合中每个文件对应的文件属性信息集合并从更新文件集合的每个文件中分别提取文本内容和/或图片内容的方式,通过对获取到的文件属性信息集合以及提取到的文本内容和/或图片内容进行统一编码格式转换,并建立文件搜索索引,达到了不仅可以针对文件名称或者路径进行检索,而且还可以提取文件中的文本内容和/或图片内容,对文本内容和/或图片内容建立索引,另外还进一步支持根据文件属性信息集合进行检索的目的,从而实现了提升检索效率和准确率的技术效果,进而解决了相关技术中所提供的文件搜索方案无法提供单独通过图片进行搜索或图文信息结合的搜索方式,而且还未考虑到在搜索过程中结合文件更新的属性信息进行搜索的技术问题。

上述更新文件集合为预设文件存储区域内存储的部分或全部文件在不同版本号之间发生过更新的文件。

通过在服务端设置SVN版本库,其用于存储全部被检索的文件,利用SVN版本管理功能(基于PySVN实现)可以从SVN版本库中获取在对当前版本文件与先前版本之间进行比较后,发生更新的一个或多个文件,得到文件列表(即上述更新文件集合)。

上述文件属性信息集合可以包括但不限于以下至少之一:

(1)对文件进行更新的人员信息;

(2)文件更新时间;

(3)文件更新后的版本号;

(4)文件更新的日志信息;

(5)文件更新方式,其中,文件更新方式包括以下之一:新增文件、修改文件、删除文件。

此外,在建立索引的过程中,除了加入文件的文本内容和图片内容之外,还需要从SVN版本库中获取每个更新后文件对应的提交人员信息、提交时间、版本编号、用户输入的提交日志信息。这部分信息单独加以存储,并且直接用于后续统一编码和索引建立。

例如:用户userA已经提交对文件fileA的修改,其修改时间为dateA,用户userA为本次文件提交随附的日志为logA,这是用户的第2次修改。那么在监测到这次修改之后,便会显示并记录以下信息:

{提交者:userA,提交文件:fileA,修改时间:dateA,日志:logA,版本号:2,修改类型:Modify}。

由于后续处理只需对发生更新的文件建立索引,而无需对全部文件进行处理,因此提高了索引建立和更新的效率。另外,由于建立索引的过程不仅为文件内容建立索引,而且还为每个文件的属性信息建立索引,由此既可以满足用户通过文件内容来搜索的需求,又可以满足用户通过属性信息(例如:SVN日志)来进行搜索的需求。

在优选实施过程中,还可以从SVN版本库中获取该文件的更新方式,其可以包括但不限于以下至少之一:

方式一、在文件列表中新增一条文件记录;

方式二、定位到文件列表中特定文件对应的条目进行修改;

方式三、对文件列表中的特定文件停止更新,只保留其历史记录。

考虑到更新类型决定后续对于这条索引的处理方式,此处定义三个状态符号分别为Modify,Add,Del,其中,Modify表示修改,代表特定文件对应的信息在后续处理过程中执行更新操作,Add表示新增,代表特定文件是新增的文件,后续的操作需要增加特定文件的信息,Del表示删除,代表特定文件对应的记录需要在系统中停止更新,而仅保留先前记录的版本信息。

可选地,在步骤S12中,从更新文件集合的每个文件中分别提取文本内容和/或图片内容可以包括以下执行步骤:

步骤S120,根据更新文件集合中包含的每个文件的文件名称后缀进行分类;

步骤S121,从分类后未包含图片信息的第一类型文件中提取文本内容,和/或,从分类后包含图片信息的第二类型文件中分别提取图片内容或者提取文本内容和图片内容。

根据文件名称的后缀可以将不同类型文件进行分类,并针对不同分类采用对应的处理方式进行文件信息提取。具体地,根据文件名称的后缀可以将文件具体划分为:

(1)文本文件:后缀为txt、js、py、html、xml等,其处理方式为:直接读取文件中的文本内容,如果出现不可读,则忽略这个文件。

(2)图片文件:后缀为jpg、bmp、png等,其处理方式为:直接进行后续图像特征处理。

(3)pdf文件:后缀为pdf,其处理方式为:利用python的pdfminer功能组件来提取pdf文件的文本内容和图片内容,对于图片部分需要进行后续图像特征处理。

(4)excel文件:后缀为xlsx或者xls,其处理方式为:采用python的xlrd功能组件来提取excel的文本内容和图片内容,对于图片部分需要进行后续图像特征处理。

(5)word文件:后缀为doc或者docx,其处理方式为:采用python的docx功能组件来提取word的文本内容和图片内容,对于图片部分需要进行后续图像特征处理。

此外,其他类型的文件将统一采用与文本文件相同的处理方式。

可选地,在步骤S14中,对文件属性信息集合以及文本内容和/或图片内容进行统一编码格式转换可以包括以下执行步骤:

步骤S140,判断文件属性信息集合所采用的编码格式与预定义的编码格式是否相同,如果不同,则将文件属性信息集合所采用的编码格式转换为预定义的编码格式;

步骤S141,判断文本内容所采用的编码格式与预定义的编码格式是否相同,如果不同,则将文本内容所采用的编码格式转换为预定义的编码格式;和/或,从图片内容中提取图像特征,并判断图像特征所采用的编码格式与预定义的编码格式是否相同,如果不同,则将图像特征所采用的编码格式转换为预定义的编码格式。

在优选实施例中,可以采用预设图片特征提取算法提取图像特征,其能够将一幅图像采用一组特征描述算子来表示。对于单独的图片文件,可以直接从图片内容中提取图像特征,再结合上述文件属性信息集合,进行统一编码后建立索引。对于文件中的图片,将同样采用上述预设图片特征提取算法提取图像特征,然后将图像特征、文件中的文本内容以及上述文件属性信息集合进行统一编码后建立索引。

对于图片文件或者包含图片的文件,对图片进行特征提取,采用图像特征代替图片文件,由于只保留特征信息而不是图像的每个像素点,因此,极大地减少了存储空间,提高了检索效率。

例如:图片文件的尺寸为n×n大小,其中,n表示像素个数;该图片文件需要占用的存储空间即为n×n个像素所需要占用的存储空间,其检索需要比较的样本点数同样为n×n个。而通过特征提取,可以采用一组特征向量来表示该图片文件,特征向量大小为m×1,其中,m表示特征向量个数。考虑到在通常情况下,m将远小于n×n,由此可以较为明显地降低存储空间的占用,提升搜索效率。

另外,不同的文件字符可能分别采用不同的编码方式,常见的编码方式可以包括但不限于:Unicode、ASCII、GBK、GB2312、UTF-8。对于相同的文本内容而言,如果分别采用不同的编码方式,则用户终端会将两者识别为不同内容。但是对于文本内容搜索而言,并不关注文本的编码方式,如果不对文本进行统一的编码,易造成搜索过程可能因为编码不同导致搜索不到对应文件,进而降低搜索的准确性。然而,如果在搜索过程中,对于每个文件搜索,都针对不同的文本进行编码识别和转码,又会带来额外的时间开销。因此,需要对文本中的字符进行统一编码。

在本发明所提供的优选实施例中,采用的文本编码为Unicode,统一编码的处理方式如下:

(1)对于占用较小存储空间的文件,读取全部文件内容;对于占用较大存储空间的文件,读取该文件中的预设行数文本(例如:前三行文本),并标记为S。

(2)采用python的chardet功能组件检测S的编码方式,作为该文本的编码方式。文本文件通常全文采用同一种编码方式,对于几万行至更多行的较大文件,只抽样前几行进行编码方式识别,可以降低内存消耗,同时提高检测速度。

(3)如果(2)中检测到的文本编码并非是Unicode,那么需要将文本统一编码为Unicode。

可选地,在步骤S14中,建立文件搜索索引还可以包括以下执行步骤:

步骤S142,当提取到文本内容时,在采用统一编码后的文本内容与文件属性信息集合之间建立关联索引,并在与图片内容对应的字段填入空字符串;或者,当提取到图片内容时,在采用统一编码后的图片内容与文件属性信息集合之间建立关联索引,并在与文本内容对应的字段填入空字符串;或者,当提取到文本内容和图片内容时,在采用统一编码后的文本内容、图片内容和文件属性信息集合三者之间建立关联索引。

采用全文搜索引擎whoosh对每个文件中提取的文本,文本中的图片特征和文件属性信息集合进行新增索引、索引内容更新或者索引内容停止更新操作。索引中缺失的字段默认存入空字符串即可,例如:对于单纯的图片文件,文件中没有文本内容,该字段存入空字符串即可。

可选地,在步骤S14,对文件属性信息集合以及文本内容和/或图片内容进行统一编码格式转换,并建立文件搜索索引之后,还可以包括以下执行步骤:

步骤S15,接收来自于用户终端的文本搜索信息和/或图片搜索信息,其中,文本搜索信息和/或图片搜索信息均采用预定义的编码格式,文本搜索信息是从用户在用户终端输入的文本信息中提取的一个或多个关键词且文本信息包括以下至少之一:文件本身包含的字符内容、文件属性信息集合中的部分或全部文件属性信息,图片搜索信息从用户在用户终端输入的图片信息中提取的图像特征;

步骤S16,采用文件搜索索引查找与文本搜索信息对应的第一备选文本集合,和/或,与图片搜索信息对应的第二备选文件集合,和/或,与文本搜索信息和图片搜索信息对应的第三备选文件集合,其中,第一备选文本集合和第二备选文件集合中包含的文件数量为预先自定义,第三备选文件集合是由文本搜索信息对应的搜索结果与图片搜索信息对应的搜索结果进行逻辑与操作后得到的。

用户不仅可以选择输入文字进行检索,服务端会根据用户的输入自动选择利用文本信息进行搜索;用户而且可以选择输入图片进行检索,服务端会根据用户的输入自动选择利用图像特征进行搜索;此外,用户还可以选择输入结合文字和图片进行检索,服务端会根据用户的输入自动选择利用结合图像特征和文本信息进行搜索

对于输入的文本信息,服务端或用户终端可以利用python的结巴分词功能组件提取文本中的关键词,然后将关键词变为为当前系统建立索引使用的统一编码,此处使用的统一编码方式为Unicode,然后利用关键词在文本索引中进行搜索。

如果输入的是图片信息,则首先利用服务端或用户终端进行特征提取,其次将其编码为Unicode,然后在图像特征索引中进行搜索,以查找关联的图片文件或者是包含该图片的word、excel、pdf等类型文件。

如果输入的是图片和文本的组合信息,服务端将分别按照文本和图片的搜索的处理方式进行检索,以获取图片搜索结果和文本搜索的结果。

对于不同的文件进行统一编码,不但可以提高检索的正确性,同时还可以减少搜索内容在不同编码类型之间转换的时间开销。

可选地,在步骤S16,采用文件搜索索引查找第一备选文本集合和/或第二备选文件集合之后,还可以包括以下执行步骤:

步骤S17,向用户终端返回第一备选文本集合、第二备选文件集合与第三备选文件集合中至少之一,其中,第一备选文本集合中的文件按照关键词匹配度由高到低进行排列,第二备选文本集合中的文件按照图像特征距离匹配度由高到低进行排列,在向用户终端返回第三备选文件集合时,优先显示第三备选文件集合。

在结果的显示方面,搜索的结果优先显示文本特征检索命中并且图像特征检索命中的结果,其次,依次显示M个图像特征检索命中,但文本关键字检索未命中的结果,再次,依次显示N个文本关键字检索命中,但图像特征检索未命中的结果,其中,M和N可以由用户自定义。具体地,对于纯文本的搜索方式,关键字匹配越多的文件排在最前面。对于图片检索的方式,图片特征距离越短,表明图片越相似,则优先显示。对于图片加文本组合的搜索方式,对于图片搜索结果和文本搜索结果进行逻辑与的操作,优先显示,然后优先显示图片特征检索命中的M个文件,和文本关键字检索命中的N个文件。

根据本发明实施例,提供了一种文件搜索装置的实施例,图2是根据本发明实施例的文件搜索装置的流程图。如图2所示,该装置包括:获取模块10,用于从预设文件存储区域获取更新文件集合以及更新文件集合中每个文件对应的文件属性信息集合;提取模块20,用于从更新文件集合的每个文件中分别提取文本内容和/或图片内容;处理模块30,用于对获取到的文件属性信息集合以及提取到的文本内容和/或图片内容进行统一编码格式转换,并建立文件搜索索引。

上述更新文件集合为预设文件存储区域内存储的部分或全部文件在不同版本号之间发生过更新的文件。

上述文件属性信息集合可以包括但不限于以下至少之一:

(1)对文件进行更新的人员信息;

(2)文件更新时间;

(3)文件更新后的版本号;

(4)文件更新的日志信息;

(5)文件更新方式,其中,文件更新方式包括以下之一:新增文件、修改文件、删除文件。

可选地,图3是根据本发明优选实施例的文件搜索装置的流程图。如图3所示,提取模块20可以包括:分类单元200,用于根据更新文件集合中包含的每个文件的文件名称后缀进行分类;提取单元202,用于从分类后未包含图片信息的第一类型文件中提取文本内容,和/或,从分类后包含图片信息的第二类型文件中分别提取图片内容或者提取文本内容和图片内容。

可选地,如图3所示,处理模块30可以包括:第一处理单元300,用于判断文件属性信息集合所采用的编码格式与预定义的编码格式是否相同,如果不同,则将文件属性信息集合所采用的编码格式转换为预定义的编码格式;第二处理单元302,用于判断文本内容所采用的编码格式与预定义的编码格式是否相同,如果不同,则将文本内容所采用的编码格式转换为预定义的编码格式;和/或,从图片内容中提取图像特征,并判断图像特征所采用的编码格式与预定义的编码格式是否相同,如果不同,则将图像特征所采用的编码格式转换为预定义的编码格式。

可选地,如图3所示,处理模块30还可以包括:第三处理单元304,用于当提取到文本内容时,在采用统一编码后的文本内容与文件属性信息集合之间建立关联索引,并在与图片内容对应的字段填入空字符串;或者,当提取到图片内容时,在采用统一编码后的图片内容与文件属性信息集合之间建立关联索引,并在与文本内容对应的字段填入空字符串;或者,当提取到文本内容和图片内容时,在采用统一编码后的文本内容、图片内容和文件属性信息集合三者之间建立关联索引。

可选地,如图3所示,上述装置还可以包括:接收模块40,用于接收来自于用户终端的文本搜索信息和/或图片搜索信息,其中,文本搜索信息和/或图片搜索信息均采用预定义的编码格式,文本搜索信息是从用户在用户终端输入的文本信息中提取的一个或多个关键词且文本信息包括以下至少之一:文件本身包含的字符内容、文件属性信息集合中的部分或全部文件属性信息,图片搜索信息从用户在用户终端输入的图片信息中提取的图像特征;查找模块50,用于采用文件搜索索引查找与文本搜索信息对应的第一备选文本集合,和/或,与图片搜索信息对应的第二备选文件集合,和/或,与文本搜索信息和图片搜索信息对应的第三备选文件集合,其中,第一备选文本集合和第二备选文件集合中包含的文件数量为预先自定义,第三备选文件集合是由文本搜索信息对应的搜索结果与图片搜索信息对应的搜索结果进行逻辑与操作后得到的。

可选地,如图3所示,上述装置还可以包括:反馈模块60,用于向用户终端返回第一备选文本集合、第二备选文件集合与第三备选文件集合中至少之一,其中,第一备选文本集合中的文件按照关键词匹配度由高到低进行排列,第二备选文本集合中的文件按照图像特征距离匹配度由高到低进行排列,在向用户终端返回第三备选文件集合时,优先显示第三备选文件集合。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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