一种信息检索的方法及装置与流程

文档序号:12465332阅读:176来源:国知局
一种信息检索的方法及装置与流程

本发明实施例涉及大数据的技术领域,尤其涉及一种信息检索的方法及装置。



背景技术:

随着大数据逐步走过了探索阶段、市场启动阶段,大数据已经进入从概念到实际应用的关键转折期。大数据在接受度、技术、应用等各个方面趋于成熟,开始步入产业的快速发展阶段。大数据巨大的应用价值带动了大数据行业的迅速发展,预测到2017年全球大数据技术和服务市场的2018年的复合年增长率将达到26.4%,规模达到415亿美元,是整个IT市场增幅的6倍。大数据市场规模在2020年有望达到611.6亿美元,符合年增长率将达到26%。

在大数据技术迅速发展和广泛应用的同时,大数据也正在面临网络攻击、数据泄露等严重安全问题,国内外各种信息泄露的数据安全事件频频发生。如:美国“棱镜门”事件、国家重要基础设施攻击事件(乌克兰电厂事件、伊朗的震网病毒Stuxnet、Flame火焰病毒、Duqu病毒等)、各类重大数据泄露事件(携程漏洞事件、中国快递1400万用户信息泄露、eBay数据大泄漏、12306用户数据泄露、500万谷歌账户信息被泄露、CSDN网站600万用户信息外泄事件)、各类重大网络安全事件(OpenSSL心脏出血漏洞)。

以上说明各类事件表明需要加强国产自主可控基础软硬件的验证与推广的迫切性。大数据时代对于信息安全的自主可控提出了更高的要求。大数据平台中的海量数据中可能包含大量敏感信息、甚至国家机密信息。这些信息存在被窃取和泄漏的风险,一旦这些数据被恶意攻击者掌握,后果将不堪设想。需要提高信息安全领域基础设施大数据平台的安全防护能力,实现信息安全领域基础设施的安全性。

目前,我国计算机及网络信息系统使用的主要操作系统和芯片、数据库、路由器等核心技术,以及互联网领域的核心基础服务等,掌握在美国企业手中。缺少自主可控的技术和能力是我国信息安全面临的最大隐患。外国开发、销售的软硬件信息系统和信息安全隐患问题突出,各类的系统后门、木马、软件陷阱、逻辑炸弹等防不胜防。迫切需要国内IT企业和行业共同研发自主可控、自主知识产权的信息系统、信息环境和信息安全产品。



技术实现要素:

本发明实施例的目的在于提出一种信息检索的方法及装置,旨在解决大数据平台中的信息检索组件Solr在国产基础软硬件的迁移、适配以及优化的问题。

为达此目的,本发明实施例采用以下技术方案:

第一方面,一种信息检索的方法,所述方法包括:

将大数据平台软件迁移到一个预设软硬件平台,所述迁移包括开发环境的迁移和运行环境的迁移,以及应用软件的移植和适配;

在所述迁移之后,在索引建立过程和信息检索过程中,通过并行处理、数据缓存、分片处理、读写分离和负载分担,对信息的采集、存储及查询进行性能优化。

优选地,所述索引建立过程,包括:

将采集到的各文档放到各服务器的本地文件系统的预设目录中,通过分词组件Tokenizer获取词元Token,所述分词组件用于将文档分成单独的单词、去除标点符号和去除停词;

由语言处理组件Linguistic Processor对所述词元Token通过语言处理组件得到词Term,所述语言处理组件用于变为小写Lowercase、将单词缩减为词根形式和将单词转变为词根形式;

由索引组件Indexer对所述词Term进行索引处理组件得到索引-文档倒排链表Posting List,所述索引处理组件用于为所述词Term创建字典、对所述字典按字母顺序进行排序并合并相同的词Term成为文档倒排Posting List的链表;

通过索引存储Storage将所述索引-文档倒排链表Posting List写入磁盘文件系统。

优选地,所述信息检索过程,包括:

将输入的查询语句SQL,经过词法分析得到单词关键字;

通过语法分析组件对所述单词关键字进行语法分析;

通过所述语言处理组件处理并输出词Term;

搜索索引并根据上一环节的词Term从磁盘中的索引文件中进行搜索;

经过搜索索引组件检索得到符合条件的文档,再由结果排序组件进行排序后返回查询结果。

优选地,所述经过搜索索引组件检索得到符合条件的文档,包括:

在反向索引表中,分别找出包含第一关键词、第二关键词和第三关键词的文档链表;

对包含所述第一关键词和所述第二关键词的链表进行合并操作,得到同时包含所述第一关键词和所述第二关键词的文档链表;

再将同时包含所述第一关键词和所述第二关键词的文档链表与所述第三关键词的文档链表进行差操作,去除包含第三关键词的文档,得到包含第一关键词且包含第二关键词且不包含第三关键词的文档链表,所述包含第一关键词且包含第二关键词且不包含第三关键词的文档链表为符合条件的文档。

优选地,所述通过并行处理、数据缓存、分片处理、读写分离和负载分担,对信息的采集、存储及查询进行性能优化,包括:

在并行处理的数据采集与传输、索引建立与更新、信息读取与检索的数据处理中,针对不同来源、不同类型的数据,按照一定的时间周期进行建表,存储和检索,并实现对数据的并发处理;数据采集与传输将采集到的数据分门别类地放到相应的信息链表,通过不同的处理线程进行分词、语言处理、索引及存储处理,再将索引数据对应的collection写入到不同节点的不同硬盘及分区的不同索引文件中;信息检索时,接收输入查询语句后,经过词法、语法、语言处理组件后,并发调用索引搜索线程并发搜索不同节点上的不同硬盘及分区上的不同索引文件,将检索结果分别进行相似度计算和排序,再统一进行结果排序,并将查询结果进行页面展示;

在数据缓存的信息检索时,采用预先申请内存、缓存常用数据和过程结果方式;文本数据从采集到传输,到索引建立与更新,到信息读取与检索的数据处理过程中,通过内存对数据进行缓存,最后仅需一次写盘操作;

在分片处理的信息检索时,对大数据量的信息检索采取分片和分包处理;采用分片响应策略处理大数据量的信息查询时,在访问、查询机处理大数据量信息时,对用于程序的访问查询采用分片响应方式,分批次返回查询结果;客户端对接收到的数据进行处理的过程是携带返回数据的过程;

在读写分离的信息检索中,将距离当前越近的近期数据独立于历史数据分开存储,并且用第一存储介质来存储所述近期数据,用第二存储介质来存储所述历史数据;

在负载分担的信息检索时,采用负载分担的方式,将用户的查询请求均匀分发到不同Solr节点上,各个节点接收到查询请求后,对本机的索引数据库进行检索。

第二方面,一种信息检索的装置,所述装置包括:

迁移模块,用于将大数据平台软件迁移到一个预设软硬件平台,所述迁移包括开发环境的迁移和运行环境的迁移,以及应用软件的移植和适配;

优化模块,用于在所述迁移之后,在索引建立过程和信息检索过程中,通过并行处理、数据缓存、分片处理、读写分离和负载分担,对信息的采集、存储及查询进行性能优化。

优选地,所述优化模块,具体用于:

将采集到的各文档放到各服务器的本地文件系统的预设目录中,通过分词组件Tokenizer获取词元Token,所述分词组件用于将文档分成单独的单词、去除标点符号和去除停词;

由语言处理组件Linguistic Processor对所述词元Token通过语言处理组件得到词Term,所述语言处理组件用于变为小写Lowercase、将单词缩减为词根形式和将单词转变为词根形式;

由索引组件Indexer对所述词Term进行索引处理组件得到索引-文档倒排链表Posting List,所述索引处理组件用于为所述词Term创建字典、对所述字典按字母顺序进行排序并合并相同的词Term成为文档倒排Posting List的链表;

通过索引存储Storage将所述索引-文档倒排链表Posting List写入磁盘文件系统。

优选地,所述优化模块,还具体用于:

将输入的查询语句SQL,经过词法分析得到单词关键字;

通过语法分析组件对所述单词关键字进行语法分析;

通过所述语言处理组件处理并输出词Term;

搜索索引并根据上一环节的词Term从磁盘中的索引文件中进行搜索;

经过搜索索引组件检索得到符合条件的文档,再由结果排序组件进行排序后返回查询结果。

优选地,所述优化模块,还具体用于:

在反向索引表中,分别找出包含第一关键词、第二关键词和第三关键词的文档链表;

对包含所述第一关键词和所述第二关键词的链表进行合并操作,得到同时包含所述第一关键词和所述第二关键词的文档链表;

再将同时包含所述第一关键词和所述第二关键词的文档链表与所述第三关键词的文档链表进行差操作,去除包含第三关键词的文档,得到包含第一关键词且包含第二关键词且不包含第三关键词的文档链表,所述包含第一关键词且包含第二关键词且不包含第三关键词的文档链表为符合条件的文档。

优选地,所述优化模块,还具体用于:

在并行处理的数据采集与传输、索引建立与更新、信息读取与检索的数据处理中,针对不同来源、不同类型的数据,按照一定的时间周期进行建表,存储和检索,并实现对数据的并发处理;数据采集与传输将采集到的数据分门别类地放到相应的信息链表,通过不同的处理线程进行分词、语言处理、索引及存储处理,再将索引数据对应的collection写入到不同节点的不同硬盘及分区的不同索引文件中;信息检索时,接收输入查询语句后,经过词法、语法、语言处理组件后,并发调用索引搜索线程并发搜索不同节点上的不同硬盘及分区上的不同索引文件,将检索结果分别进行相似度计算和排序,再统一进行结果排序,并将查询结果进行页面展示;

在数据缓存的信息检索时,采用预先申请内存、缓存常用数据和过程结果方式;文本数据从采集到传输,到索引建立与更新,到信息读取与检索的数据处理过程中,通过内存对数据进行缓存,最后仅需一次写盘操作;

在分片处理的信息检索时,对大数据量的信息检索采取分片和分包处理;采用分片响应策略处理大数据量的信息查询时,在访问、查询机处理大数据量信息时,对用于程序的访问查询采用分片响应方式,分批次返回查询结果;客户端对接收到的数据进行处理的过程是携带返回数据的过程;

在读写分离的信息检索中,将距离当前越近的近期数据独立于历史数据分开存储,并且用第一存储介质来存储所述近期数据,用第二存储介质来存储所述历史数据;

在负载分担的信息检索时,采用负载分担的方式,将用户的查询请求均匀分发到不同Solr节点上,各个节点接收到查询请求后,对本机的索引数据库进行检索。

本发明实施例提供的一种信息检索的方法及装置,将大数据平台软件迁移到一个预设软硬件平台,所述迁移包括开发环境的迁移和运行环境的迁移,以及应用软件的移植和适配;在所述迁移之后,在索引建立过程和信息检索过程中,通过并行处理、数据缓存、分片处理、读写分离和负载分担,对信息的采集、存储及查询进行性能优化。从而基于国产基础软硬件的信息检索技术,大数据平台中的信息检索组件Solr在国产基础软硬件的迁移、适配以及优化的问题。

附图说明

图1是本发明实施例提供的一种信息检索的方法的流程示意图;

图2是本发明实施例提供的一种大数据平台和信息检索系统组成示意图;

图3是本发明实施例提供的一种国产硬件核心组件图;

图4是本发明实施例提供的一种信息检索系统的索引建立和信息检索流程图;

图5是本发明实施例提供的一种并行处理优化示意图;

图6是本发明实施例提供的一种数据缓存优化示意图;

图7是本发明实施例提供的一种分片处理优化示意图;

图8是本发明实施例提供的一种读写分离优化示意图;

图9是本发明实施例提供的一种负载分担优化示意图;

图10是本发明实施例提供的一种信息检索的装置的功能模块示意图。

具体实施方式

下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。

参考图1,图1是本发明实施例提供的一种信息检索的方法的流程示意图。

如图1所示,所述信息检索的方法包括:

步骤101,将大数据平台软件迁移到一个预设软硬件平台,所述迁移包括开发环境的迁移和运行环境的迁移,以及应用软件的移植和适配;

具体的,本发明中提及的大数据平台主要组成如下图2中的“大数据平台”框中所示,在本发明中重点解决大数据平台中的信息检索软件(如下图2中的“信息检索软件”框中所示)在国产基础软硬件上的迁移和优化。

Solr是一个独立的基于第一关键词的Java搜索引擎服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

Solr是一个高性能,采用Java开发,基于第一关键词的全文搜索服务器。同时对其进行了扩展,提供了比第一关键词更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的信息检索软件。

Solr已经在众多大型的网站中使用,较为成熟和稳定。由于Solr基于java开发,因此Solr在不同硬件平台和操作系统上都能较好部署使用。

本发明中主要涉及到的国产硬件主要包括:基于国产FT-1500A系列CPU的国产服务器。

国产服务器核心组成如下图3所示,主要核心组件有:FT-1500A系列CPU、8*16GB DDR3内存、2*SAS接口固态硬盘、12*SATA接口机械硬盘、2*千兆网口和2*万兆网口,上述组件全部由国产自主研发和生产。

其中,国产FT-1500A系列CPU是64位通用CPU,兼容ARM V8指令集,采用国际先进的28nm工艺流片,具有高性能、低功耗等特点,关键技术国内领先,可实现对Intel中高端“至强”服务器芯片的替代,并广泛应用于政府办公和金融、税务等各行业信息化系统之中。FT-1500A系列处理器目前包括4核和16核两款产品。其中4核处理器芯片主要面向桌面终端和轻量级服务器应用领域,主频2GHz,功耗15W,两个DDR3-1600存储通道,支持电源关断、DVFS等低功耗技术,适用于构建台式终端、一体机、便携笔记本、微服务器等产品;16核处理器芯片面向服务器应用领域,主频2GHz,功耗35W,4个DDR3-1600存储通道,支持虚拟化功能,适用于构建数据中心的高性能计算和存储等产品。本发明中,采用16核处理器芯片。

本发明中主要涉及到的国产软件主要包括:中标麒麟安全操作系统:

2010年12月16日,两大国产操作系统—民用的“中标Linux”操作系统和解放军研制的“银河麒麟”操作系统,在上海正式宣布合并,双方今后将共同以“中标麒麟”的新品牌统一出现在市场上,并将开发军民两用的操作系统。

采用高安全等级的中标麒麟安全操作系统软件作为系统平台,结合自主CPU硬件、国产数据库、中间件和应用软件,以及军用密码算法及安全设备,构建国防、涉密、机要等领域自主安全可控的软件开发/运行环境。

通常基于Intel X86架构的国际主流商用计算机开发和使用大数据平台软件。但为满足政府、国防、金融、电力、机要、保密等领域对操作系统的高安全性需求,我们需要将这些大数据平台软件迁移到一个自主可控、高安全等级的可信国产基础软硬件平台之上。迁移的过程包括开发和运行环境的迁移,以及应用软件本身的移植和适配,再经过严格测试方可投入实际使用。在本发明中将阐述大数据平台软件中的信息检索软件在国产基础软硬件平台的迁移方法。

迁移工作包括开发和运行环境的迁移,以及应用软件本身的移植和适配。

第一步:开发环境的迁移:

1、在上述国产服务器安装中标麒麟安全操作系统;

2、以root用户登陆系统,并通过准备相应的软件安装包;

3、安装JDK,版本为:jdk-7u10-linux-arm-sfp.tar.gz,并配置JDK环境变量;

4、安装Eclipse,版本为eclipse-jee-luna-SR1-linux-gtk.tar.gz。

第二步:运行环境的迁移:

安装Tomcat,版本为apache-tomcat-7.0.54.tar.gz,安装成功后启动Tomcat;

安装zookeeper,版本为zookeeper-3.3.6.tar.gz,安装成功后启动zookeeper;

安装solr,版本为solr-5.4.0.tgz,配置Solr,安装成功后重新启动Tomcat。

第三步:运行环境调试:

使用了3台服务器安装zookeeper、另外4台服务器作为运行solr程序。

1.修改solr中各节点的配置文件;

2.重启tomcat服务;

3.http://ip:8080/solr/index.html可以看到solr控制台。

步骤102,在所述迁移之后,在索引建立过程和信息检索过程中,通过并行处理、数据缓存、分片处理、读写分离和负载分担,对信息的采集、存储及查询进行性能优化。

具体的,国产计算机与国际主流商用计算机相比,其计算、存储及IO的性能差距较大,因此,为了满足各种性能指标要求,在基于国产软硬件上迁移和使用信息检索软件过程中,需要采用多种优化技术。

在本发明中,将重点阐述信息检索软件在国产基础软硬件平台的优化方法。主要包括:并行处理、数据缓存、分片处理、读写分离等技术,对信息的采集、存储及查询全过程进行性能优化,弥补当前国产基础软硬件对信息系统支撑能力不足,提供国产化信息系统的运行效率。

其中,所述索引建立过程,包括:

将采集到的各文档放到各服务器的本地文件系统的预设目录中,通过分词组件Tokenizer获取词元Token,所述分词组件用于将文档分成单独的单词、去除标点符号和去除停词;

由语言处理组件Linguistic Processor对所述词元Token通过语言处理组件得到词Term,所述语言处理组件用于变为小写Lowercase、将单词缩减为词根形式和将单词转变为词根形式;

由索引组件Indexer对所述词Term进行索引处理组件得到索引-文档倒排链表Posting List,所述索引处理组件用于为所述词Term创建字典、对所述字典按字母顺序进行排序并合并相同的词Term成为文档倒排Posting List的链表;

通过索引存储Storage将所述索引-文档倒排链表Posting List写入磁盘文件系统。

具体的,优化之前,先了解一下Solr信息索引软件的工作流程,参考下图4。其中包含:索引建立过程和信息检索过程,下面的各种优化技术都是针对这两个过程进行的。

索引建立过程:

第一步:将采集到的各位文档(Document)放到各个服务器的本地文件系统的某个目录。然后通过分词组件(Tokenizer)完成如下操作得到词元(Token)

1.将文档分成一个一个单独的单词。

2.去除标点符号。

3.去除停词(Stop word)。

第二步:由语言处理组件(Linguistic Processor)对得到的词元(Token)做一些同语言相关的处理得到词(Term):

1.变为小写(Lowercase)。

2.将单词缩减为词根形式,如“cars”到“car”等。这种操作称为:stemming。

3.将单词转变为词根形式,如“drove”到“drive”等。这种操作称为:lemmatization。

第三步:接下来由索引组件(Indexer)针对词(Term)做以下几件事情得到索引-文档倒排链表(Posting List):

1.利用得到的词(Term)创建一个字典.

2.对字典按字母顺序进行排序.

3.合并相同的词(Term)成为文档倒排(Posting List)链表.

第四步:接下来由索引存储(Storage)将索引-文档倒排链表(Posting List)写入磁盘文件系统。

至此,基本完成索引建立的所有工作。

其中,所述信息检索过程,包括:

将输入的查询语句SQL,经过词法分析得到单词关键字;

通过语法分析组件对所述单词关键字进行语法分析;

通过所述语言处理组件处理并输出词Term;

搜索索引并根据上一环节的词Term从磁盘中的索引文件中进行搜索;

经过搜索索引组件检索得到符合条件的文档,再由结果排序组件进行排序后返回查询结果。

优选地,所述经过搜索索引组件检索得到符合条件的文档,包括:

在反向索引表中,分别找出包含第一关键词、第二关键词和第三关键词的文档链表;

对包含所述第一关键词和所述第二关键词的链表进行合并操作,得到同时包含所述第一关键词和所述第二关键词的文档链表;

再将同时包含所述第一关键词和所述第二关键词的文档链表与所述第三关键词的文档链表进行差操作,去除包含第三关键词的文档,得到包含第一关键词且包含第二关键词且不包含第三关键词的文档链表,所述包含第一关键词且包含第二关键词且不包含第三关键词的文档链表为符合条件的文档。

其中,第一关键词可以为lucene;第二关键词可以为learn;第三关键词可以为hadoop。

另外,该文档也可以包括第一关键词、第二关键词和/或第三关键词。不限于同时包括第一关键词、第二关键词和第三关键词的情况。

具体的,信息检索过程:

第一步:将输入的查询语句(SQL),经过词法分析得到单词关键字。

第二步:然后经过语法分析组件对输入的单次关键字进行语法分析。

主要是根据查询语句的语法规则来形成一棵语法树

第三步:经由语言处理组件(Linguistic Processor)处理,和索引建立过程中的语言处理相似,同样输出词(Term)

第四步:搜索索引根据上一环节的词(Term),从磁盘中的索引文件中进行搜索,具体:

扫描文档倒排链表,得到符合语法树的文档,具体包括:

1.首先,在反向索引表中,分别找出包含第一关键词,第二关键词,第三关键词的文档链表。

2.其次,对包含第一关键词,第二关键词的链表进行合并操作,得到既包含第一关键词又包含第二关键词的文档链表。

3.然后,将此链表与第三关键词的文档链表进行差操作,去除包含第三关键词的文档,从而得到既包含第一关键词又包含第二关键词而且不包含第三关键词的文档链表。

4.此文档链表就是我们要找的文档。

第五步:经过搜索索引组件检索得到符合条件的文档(Document),然后由结果排序组件进行排序,最后返回查询结果。

至此,基本完成信息检索的所有工作。

优选地,所述通过并行处理、数据缓存、分片处理、读写分离和负载分担,对信息的采集、存储及查询进行性能优化,包括:

在并行处理的数据采集与传输、索引建立与更新、信息读取与检索的数据处理中,针对不同来源、不同类型的数据,按照一定的时间周期进行建表,存储和检索,并实现对数据的并发处理;数据采集与传输将采集到的数据分门别类地放到相应的信息链表,通过不同的处理线程进行分词、语言处理、索引及存储处理,再将索引数据对应的collection写入到不同节点的不同硬盘及分区的不同索引文件中;信息检索时,接收输入查询语句后,经过词法、语法、语言处理组件后,并发调用索引搜索线程并发搜索不同节点上的不同硬盘及分区上的不同索引文件,将检索结果分别进行相似度计算和排序,再统一进行结果排序,并将查询结果进行页面展示;

在数据缓存的信息检索时,采用预先申请内存、缓存常用数据和过程结果方式;过缓存计算和处理后产生的中间结果,来提高结果返回和展示的效率;文本数据从采集到传输,到索引建立与更新,到信息读取与检索的数据处理过程中,通过内存对数据进行缓存,最后仅需一次写盘操作;

在分片处理的信息检索时,对大数据量的信息检索采取分片和分包处理;采用分片响应策略处理大数据量的信息查询时,在访问、查询机处理大数据量信息时,对用于程序的访问查询采用分片响应方式,分批次返回查询结果;客户端对接收到的数据进行处理的过程是携带返回数据的过程;

在读写分离的信息检索中,将距离当前越近的近期数据独立于历史数据分开存储,并且用第一存储介质来存储所述近期数据,用第二存储介质来存储所述历史数据;

在负载分担的信息检索时,采用负载分担的方式,将用户的查询请求均匀分发到不同Solr节点上,各个节点接收到查询请求后,对本机的索引数据库进行检索。

具体的,由于国产计算机与国际主流商用计算机相比,其计算、存储及IO的性能差距较大,因此,为了满足各种性能指标要求,在基于国产软硬件上迁移和使用信息检索软件过程中,需要采用多种优化技术。在本发明中采用如下优化技术:

1、并行处理:

主要解决国产基础软硬件环境下计算和IO密集类型的应用软件处理效率不高问题,在基于开源Solr的信息检索软件中,包括索引建立、更新,检索等高IO密集型操作和分词、语法分析、汇聚、模式匹配、相关度计算、分组和排序等高计算密集型操作。

针对国产基础软硬件和基于开源Solr的信息检索软件的不足和特性,我们将数据采集与传输、索引建立与更新、信息读取与检索等数据处理任务进行细粒度的分解,达到多进程多线程并发执行,从而提升整体并发处理能力。

国产CPU采用FT-1500A处理,是64位通用CPU,采用16核设计,故在应用软件实现过程中,可通过多核多线程优化方法充分发挥过程计算机的多核性能。如下图5所示,尤其是在一些计算密集型应用中,尽管过程计算机采用精简指令集(RISC),与传统复杂指令集(CISC)相比,减少了寻址方式,但在CPU自身能力、总线服务方式、硬盘读写方式及制造工艺方面的不足,导致过程计算机读取较大文件时耗时较长。

在数据采集与传输、索引建立与更新、信息读取与检索等数据处理等环节,针对不同来源,不同类型的数据,并按一定的时间周期进行建表,存储和检索,从而实现对数据的并发处理。其中,数据采集和传输部分将采集到的数据分门别类地放到相应的信息链表,然后通过不同的处理线程进行分词、语言处理、索引及存储等处理,然后将索引数据对应的collection写入到不同节点的不同硬盘及分区的不同索引文件中,从而大大提高计算和存储的并发能力。信息检索时,用户输入查询语句后,经过词法、语法、语言处理组件后,然后并发调用索引搜索线程并发搜索不同节点上的不同硬盘及分区上的不同索引文件,将检索结果分别进行相似度计算和排序,然后再统一进行结果排序,并将查询结果进行页面展示。

在国产化基础软硬件环境下,信息检索软件初步验证表明,索引建立和信息检索的性能(16线程)比单线程的效率要提高12倍左右。

2、数据缓存:

基于数据缓存的软件性能优化技术主要解决国产基础软硬件环境下的处理大数据信息时,磁盘读写慢和文件拷贝等待时间长导致的运行效率不高问题。

信息检索软件在设计时,采用预先申请内存、缓存常用数据和过程结果等方式,如下图6所示,充分利用内存和缓存在数据访问处理中的功能,从而提高应用软件的执行效率。

利用数据缓存,提供结果返回和展示效率。对各类实时信息采用缓存在刷新的整体策略,减少刷新次数,提高信息显示效率。

缓存常用数据,降低磁盘读写次数。对报文模板和专业计算参数等常用数据进行缓存,可以有效减少磁盘读写次数,提高应用软件相应速度。对于需要频繁加载的常用数据,在软件启动初始化时,开辟缓存空间自动预加载,可以大幅提升计算效率。

缓存过程数据,降低写盘开销。数据经过计算和处理后产生中间结果,通过磁盘进行保存时,增加了应用软件的开销。从文本数据从采集到传输,到索引建立与更新,到信息读取与检索等一系列数据处理过程中,可以通过内存对数据进行缓存,最后仅需一次写盘操作,这样可以有效减少磁盘写入开销,从而提高用户响应速度。

在国产基础软硬件环境下,信息检索软件初步验证表明,对应相同数据量下,采用缓存技术后,能提高信息检索效率20%左右。

3、分片处理:

基于分片处理的信息检索技术可以解决在国产基础软硬件环境下,数据采集与传输、索引建立与更新、信息读取与检索等数据处理等环节处理大数据量下等待时间长,难以满足性能指标需求的问题。

在应用软件设计时,尤其是对于大数据量的信息检索软件而言,处理和查询数据是进行分片和分包处理,如下图7所示,可以减少单次处理和查询的时延,不同分片可以形成流水线式的并行处理效果,从而提高系统的响应速度,改善用户体验。

分片处理与一次性整体处理策略相比,在信息量不丢失的情况下,采集与传输,索引建立与更新、信息读取与检索等数据处理等环节的可靠性和时延均得到了有效的改善。

采用分片响应策略处理大数据量的信息查询时,在访问、查询机处理大数据量信息时,对客户程序的访问查询采用分片响应方式,分批次返回查询结果。客户端对接收到的数据进行处理的过程是得带返回数据的过程,在不影响用户数据使用的情况下,有效降低系统资源的消耗,缩短了用户等待时间。

在国产基础软硬件环境下,信息检索软件初步验证表明,客户程序请求查询数在万条数据,服务类应用软件对该请求一次性处理时,不仅在查询过程中消耗大量的内存,而且返回过程中也占用大量的网络资源。如该请求分10次处理,即:每千条记录为一批,响应效率提高80%,查询效率提高25%。

4、读写分离

采用读写分离的信息检索技术可以解决在国产基础软硬件环境下,索引数据建立和更新等写磁盘操作与信息读取与检索等读磁盘操作之间对磁盘磁头争用的冲突问题,如下图8所示。一般而言,只有最近入库的数据存在冲突问题,距离当前越远的数据再次更新的概率较小。距离当前越近的数据再次更新的概率高,查询检索的概率也加高,因此需要将该部分数据独立于历史数据分开存储,并且用较好的存储介质来存储近期数据,用成本较低的存储介质来存储历史数据,从而达到较好的用户体验效果,另一方面又可以较好的成本控制。

在国产基础软硬件环境下,信息检索软件初步验证表明,采用读写分离技术之后,对历史数据的检索响应效率提高20%,对近期数据的检索查询效率提高10%。

5、负载分担:

基于负载分担的信息检索技术可以解决在国产基础软硬件环境下,信息读取与检索等数据处理环节查询效率,访问延时问题。通过如下图9所示,采用负载分担的方式,将用户的查询请求均匀分发到不同Solr节点上,各个节点接收到查询请求后,对本机的索引数据库进行检索,彼此互不影响,独立并行工作。随着数据量的增加,可以通过增加Solr节点数量进行线性扩展,从而能线性扩容,并保持高效查询。

本发明实施例提供的一种信息检索的方法,将大数据平台软件迁移到一个预设软硬件平台,所述迁移包括开发环境的迁移和运行环境的迁移,以及应用软件的移植和适配;在所述迁移之后,在索引建立过程和信息检索过程中,通过并行处理、数据缓存、分片处理、读写分离和负载分担,对信息的采集、存储及查询进行性能优化。从而基于国产基础软硬件的信息检索技术,大数据平台中的信息检索组件Solr在国产基础软硬件的迁移、适配以及优化的问题。

参考图10,图10是本发明实施例提供的一种信息检索的装置的功能模块示意图。

如图10所示,所述装置包括:

迁移模块1001,用于将大数据平台软件迁移到一个预设软硬件平台,所述迁移包括开发环境的迁移和运行环境的迁移,以及应用软件的移植和适配;

优化模块1002,用于在所述迁移之后,在索引建立过程和信息检索过程中,通过并行处理、数据缓存、分片处理、读写分离和负载分担,对信息的采集、存储及查询进行性能优化。

优选地,所述优化模块1001,具体用于:

将采集到的各文档放到各服务器的本地文件系统的预设目录中,通过分词组件Tokenizer获取词元Token,所述分词组件用于将文档分成单独的单词、去除标点符号和去除停词;

由语言处理组件Linguistic Processor对所述词元Token通过语言处理组件得到词Term,所述语言处理组件用于变为小写Lowercase、将单词缩减为词根形式和将单词转变为词根形式;

由索引组件Indexer对所述词Term进行索引处理组件得到索引-文档倒排链表Posting List,所述索引处理组件用于为所述词Term创建字典、对所述字典按字母顺序进行排序并合并相同的词Term成为文档倒排Posting List的链表;

通过索引存储Storage将所述索引-文档倒排链表Posting List写入磁盘文件系统。

优选地,所述优化模块1001,还具体用于:

将输入的查询语句SQL,经过词法分析得到单词关键字;

通过语法分析组件对所述单词关键字进行语法分析;

通过所述语言处理组件处理并输出词Term;

搜索索引并根据上一环节的词Term从磁盘中的索引文件中进行搜索;

经过搜索索引组件检索得到符合条件的文档,再由结果排序组件进行排序后返回查询结果。

优选地,所述优化模块1001,还具体用于:

在反向索引表中,分别找出包含第一关键词、第二关键词和第三关键词的文档链表;

对包含所述第一关键词和所述第二关键词的链表进行合并操作,得到同时包含所述第一关键词和所述第二关键词的文档链表;

再将同时包含所述第一关键词和所述第二关键词的文档链表与所述第三关键词的文档链表进行差操作,去除包含第三关键词的文档,得到包含第一关键词且包含第二关键词且不包含第三关键词的文档链表,所述包含第一关键词且包含第二关键词且不包含第三关键词的文档链表为符合条件的文档。

优选地,所述优化模块1001,还具体用于:

在并行处理的数据采集与传输、索引建立与更新、信息读取与检索的数据处理中,针对不同来源、不同类型的数据,按照一定的时间周期进行建表,存储和检索,并实现对数据的并发处理;数据采集与传输将采集到的数据分门别类地放到相应的信息链表,通过不同的处理线程进行分词、语言处理、索引及存储处理,再将索引数据对应的collection写入到不同节点的不同硬盘及分区的不同索引文件中;信息检索时,接收输入查询语句后,经过词法、语法、语言处理组件后,并发调用索引搜索线程并发搜索不同节点上的不同硬盘及分区上的不同索引文件,将检索结果分别进行相似度计算和排序,再统一进行结果排序,并将查询结果进行页面展示;

在数据缓存的信息检索时,采用预先申请内存、缓存常用数据和过程结果方式;通过缓存计算和处理后产生的中间结果,来提高结果返回和展示的效率;文本数据从采集到传输,到索引建立与更新,到信息读取与检索的数据处理过程中,通过内存对数据进行缓存,最后仅需一次写盘操作;

在分片处理的信息检索时,对大数据量的信息检索采取分片和分包处理;采用分片响应策略处理大数据量的信息查询时,在访问、查询机处理大数据量信息时,对用于程序的访问查询采用分片响应方式,分批次返回查询结果;客户端对接收到的数据进行处理的过程是携带返回数据的过程;

在读写分离的信息检索中,将距离当前越近的近期数据独立于历史数据分开存储,并且用第一存储介质来存储所述近期数据,用第二存储介质来存储所述历史数据;

在负载分担的信息检索时,采用负载分担的方式,将用户的查询请求均匀分发到不同Solr节点上,各个节点接收到查询请求后,对本机的索引数据库进行检索。

本发明实施例提供的一种信息检索的装置,将大数据平台软件迁移到一个预设软硬件平台,所述迁移包括开发环境的迁移和运行环境的迁移,以及应用软件的移植和适配;在所述迁移之后,在索引建立过程和信息检索过程中,通过并行处理、数据缓存、分片处理、读写分离和负载分担,对信息的采集、存储及查询进行性能优化。从而基于国产基础软硬件的信息检索技术,大数据平台中的信息检索组件Solr在国产基础软硬件的迁移、适配以及优化的问题。

以上结合具体实施例描述了本发明实施例的技术原理。这些描述只是为了解释本发明实施例的原理,而不能以任何方式解释为对本发明实施例保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明实施例的其它具体实施方式,这些方式都将落入本发明实施例的保护范围之内。

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