一种全文检索系统中可定制的数据抓取方法【专利摘要】本发明涉及一种全文检索系统中可定制的数据抓取方法,通过在文档存储系统和全文检索系统设置建索引模块,对指定格式的文档建立索引,该方法具体包括以下步骤:步骤101.建索引模块从文档存储系统获取文件元数据,包括需要进行搜索的信息和文件的头信息;步骤102.建索引模块内部通过文件的头信息识别文件类型,对指定不需要的文件不获取文件内容,并过滤掉无需建立索引的文件;步骤103.建索引模块从文档存储系统获取需要建立索引的文件的内容;步骤104.建索引模块提交文件元数据和文件给全文检索系统建立索引。与现有技术相比,本发明具有维护方便、提高检索效率、降低访问压力等优点。【专利说明】一种全文检索系统中可定制的数据抓取方法【
技术领域:
】[0001]本发明涉及一种信息检索技术,尤其是涉及一种全文检索系统中可定制的数据抓取方法。【
背景技术:
】[0002]随着企业的不断发展,企业的文档服务器上的文档不断增加,传统时代通过大脑记忆和肉眼查找文档的方式已经完全不能满足大部分的企业需求。有时对文档存储系统上的文档进行归档,可以解决一部分问题。但是如果归完档之后还是很多的情况下,也不能快速地准确地进行查找。[0003]目前,为了满足对拥有大规模的文档服务器进行快速准确的查找的需求,通常采用文档存储系统和全文检索系统相结合的做法。普通的搜索关键字,都是打开文件,顺序读取文件内容查找关键词。而全文检索是建立关键词与文档的索引关系,当输入关键词的时候,可以直接定位到该文件,所以全文检索系统能够满足大数据量下的搜索性能。常见的建索引方法有以下两种:[0004]第一种,文档上传过程就立即或者后台自动建立索引。这种方式因建立索引的时间开销而降低了原本的文档访问的流畅性。而且某些系统甚至还需要将已存在的文档重新导入一遍才能让全文检索建立索引。显而易见,这种将文档存储和全文检索深度耦合的做法对于已经有大规模文档的服务器不太适用,同时加大了整个服务器的维护难度。[0005]第二种,单独一台全文检索服务器,先从文档服务器上面把所有文件下载下来,然后建立索引,这种方式较第一种有了很大的进步。但是对于全文检索系统来说,部分文档(比如视频音频图片等文件)容量大,将全部的文档内容提交去建索引意义不大。没有将这些文档过滤掉,下载这些大文件增加了文档服务器的访问压力。然而有的时候企业的文档服务器甚至可能只需要检索某几类最常用的文档类型的数据,其中有=Office文档(Microsoftoffice)、pdf文档(PortableDocumentFormat)和文本文档。那么应对这种需求,其他任何格式的文档下载操作和建索引操作都是对服务器资源的一种浪费。【
发明内容】[0006]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种维护方便、提高检索效率、降低访问压力的全文检索系统中可定制的数据抓取方法,通过合理的流程将文档存储系统和全文检索系统松耦合地结合起来,可对指定格式的文档建立索引,降低文档存储系统的访问压力,提高全文全文检索系统建立索引效率。[0007]本发明的目的可以通过以下技术方案来实现:[0008]一种全文检索系统中可定制的数据抓取方法,其特征在于,通过在文档存储系统和全文检索系统设置建索引模块,对指定格式的文档建立索引,该方法具体包括以下步骤:[0009]步骤101,建索引模块从文档存储系统获取文件元数据,包括需要进行搜索的信息和文件的头信息;[0010]步骤102,建索引模块内部通过文件的头信息识别文件类型,对指定不需要的文件不获取文件内容,并过滤掉无需建立索引的文件;[0011]步骤103,建索引模块从文档存储系统获取需要建立索引的文件的内容;[0012]步骤104,建索引模块提交文件元数据和文件给全文检索系统建立索引。[0013]该方法具体为:[0014]步骤201,建索引模块浏览文档存储系统目录下所有文件的元数据,并将这些元数据存放置容器中,然后执行步骤202;[0015]步骤202,若该目录下没有文件,则直接结束;若该目录下存在文件,则执行步骤203;[0016]步骤203,取出容器中其中一个文件的元数据信息,并从容器中移除该项,然后执行步骤204;[0017]步骤204,利用文件的元数据信息下载该文件的第一个数据块,然后执行步骤205;[0018]步骤205,通过Apachetika开源库和文件的第一个数据块内容来识别文件的类型,然后执彳了步骤206;[0019]步骤206,判断该类型的文件内容是否为需要用来搜索,若为是,执行步骤207,否贝U,过滤掉该类型文件内容,不需要下载剩余的数据块,直接执行步骤208;[0020]步骤207,下载剩余的数据块,然后执行步骤208:[0021]步骤208,将文件元数据信息和文件内容提交给全文检索系统建立索引,然后返回步骤202,进行下一个文件的建索引过程。[0022]与现有技术相比,本发明具有以下优点:[0023]1、维护方便,由于文档存储系统和全文检索系统是通过建索引模块这个适配层结合的,因此极大地降低了两个系统的耦合性,更便于维护。[0024]2、提高检索效率,由于建索引模块在获取文件的第一块数据时,能够根据文件头识别文档格式,因此可以对指定格式的文档建立索引,同时由于不再是大而全且盲目的建索引,只对指定格式的文档建立索引,因此提高全文检索系统的效率。[0025]3、降低访问压力,一方面建索引模块过滤掉了一些不需要建立索引的文档的下载,减少了文档存储系统的访问;另一方面不再需要去文档存储系统一个个查找需要文档,而是可以先从全文检索系统快速定位到文件,因此降低文档存储系统的访问压力。【专利附图】【附图说明】[0026]图1为本发明实现的整体结构示意图;[0027]图2为本发明的工作流程图;[0028]图3为本发明具体实施例的流程图。【具体实施方式】[0029]下面结合附图和具体实施例对本发明进行详细说明。[0030]实施例1[0031]如图1所示,一种全文检索系统中可定制的数据抓取方法,其特征在于,通过在文档存储系统和全文检索系统设置建索引模块,对指定格式的文档建立索引,该方法具体包括以下步骤:[0032]步骤101,建索引模块从文档存储系统获取文件元数据,包括需要进行搜索的信息和文件的头信息;[0033]步骤102,建索引模块内部通过文件的头信息识别文件类型,对指定不需要的文件不获取文件内容,并过滤掉无需建立索引的文件;[0034]步骤103,建索引模块从文档存储系统获取需要建立索引的文件的内容;[0035]步骤104,建索引模块提交文件元数据和文件给全文检索系统建立索引。[0036]如图2所示,该方法具体为:[0037]步骤201,建索引模块浏览文档存储系统目录下所有文件的元数据,并将这些元数据存放置容器中,然后执行步骤202;[0038]步骤202,若该目录下没有文件,则直接结束;若该目录下存在文件,则执行步骤203;[0039]步骤203,取出容器中其中一个文件的元数据信息,并从容器中移除该项,然后执行步骤204;[0040]步骤204,利用文件的元数据信息下载该文件的第一个数据块,然后执行步骤205;[0041]步骤205,通过Apachetika开源库和文件的第一个数据块内容来识别文件的类型,然后执彳了步骤206;[0042]步骤206,判断该类型的文件内容是否为需要用来搜索,若为是,执行步骤207,否贝U,过滤掉该类型文件内容,不需要下载剩余的数据块,直接执行步骤208;[0043]步骤207,下载剩余的数据块,然后执行步骤208;[0044]步骤208,将文件元数据信息和文件内容提交给全文检索系统建立索引,然后返回步骤202,进行下一个文件的建索引过程。[0045]实施例2[0046]本发明以全文检索系统需要对所有文件的作者,文件的最后修改时间进行搜索,另外需要对office文件,pdf文件和文本文件的内容进行搜索为例,以图3进行详细阐述。[0047]步骤301,浏览目录下所有文件的文件ID、作者和最后修改时间,将其存放置容器中,然后执彳丁步骤302。[0048]步骤302,若该目录下没有文件,则直接结束;若该目录下存在文件,则执行步骤303。[0049]步骤303,取出容器中其中一个文件的ID,并从容器中移除该项,然后执行步骤304。[0050]步骤304,利用文件ID下载该文件的第一个数据块,然后执行步骤305。[0051]步骤305,通过Apachetika开源库和文件的第一个块的内容识别文件的类型,然后执行步骤306。[0052]步骤306,若该类型不是office文件,pdf文件和文本文件,则不需要下载剩余的数据块,直接执行步骤308。[0053]步骤307,对office文件,pdf文件和文本文件利用文件ID下载剩余的数据块,然后执行步骤308。[0054]步骤308,将文件作者和文件最后修改时间及其office文件,pdf文件和文本文件的内容提交给全文检索系统建立索引,然后执行步骤302进行下一个文件的建索引过程。【权利要求】1.一种全文检索系统中可定制的数据抓取方法,其特征在于,通过在文档存储系统和全文检索系统设置建索引模块,对指定格式的文档建立索引,该方法具体包括以下步骤:步骤101,建索引模块从文档存储系统获取文件元数据,包括需要进行搜索的信息和文件的头彳目息;步骤102,建索引模块内部通过文件的头信息识别文件类型,对指定不需要的文件不获取文件内容,并过滤掉无需建立索引的文件:步骤103,建索引模块从文档存储系统获取需要建立索引的文件的内容;步骤104,建索引模块提交文件元数据和文件给全文检索系统建立索引。2.根据权利要求1所述的一种全文检索系统中可定制的数据抓取方法,其特征在于,该方法具体为:步骤201,建索引模块浏览文档存储系统目录下所有文件的元数据,并将这些元数据存放置容器中,然后执行步骤202;步骤202,若该目录下没有文件,则直接结束;若该目录下存在文件,则执行步骤203;步骤203,取出容器中其中一个文件的元数据信息,并从容器中移除该项,然后执行步骤204;步骤204,利用文件的元数据信息下载该文件的第一个数据块,然后执行步骤205;步骤205,通过Apachetika开源库和文件的第一个数据块内容来识别文件的类型,然后执彳了步骤206;步骤206,判断该类型的文件内容是否为需要用来搜索,若为是,执行步骤207,否则,过滤掉该类型文件内容,不需要下载剩余的数据块,直接执行步骤208;步骤207,下载剩余的数据块,然后执行步骤208;步骤208,将文件元数据信息和文件内容提交给全文检索系统建立索引,然后返回步骤·202,进行下一个文件的建索引过程。【文档编号】G06F17/30GK103853832SQ201410087789【公开日】2014年6月11日申请日期:2014年3月11日优先权日:2014年3月11日【发明者】刘浪申请人:上海爱数软件有限公司