基于云计算及大数据技术的电力搜索引擎技术研究

2016-03-03 05:52楼凤丹裴旭斌王志强纪德良
电网与清洁能源 2016年12期
关键词:全文检索分词搜索引擎

楼凤丹,裴旭斌,王志强,纪德良

(1.国网浙江省电力公司信息通信分公司,浙江杭州 310007;2.浙江华云信息科技有限公司,浙江杭州 310008)

基于云计算及大数据技术的电力搜索引擎技术研究

楼凤丹1,裴旭斌1,王志强1,纪德良2

(1.国网浙江省电力公司信息通信分公司,浙江杭州 310007;2.浙江华云信息科技有限公司,浙江杭州 310008)

电力营销经过多年的信息化发展,企业内部已经建立大量异构型应用系统,产生了大量分散的结构化、半结构化、非结构化数据。基于云计算及大数据技术的电力"求索"搜索引擎技术,构建集中式数据中心全文检索的索引,实现对大规模不同业务功能和业务数据的统一检索,满足用户从大量异构业务系统和海量数据中进行快速检索的要求。电力"求索"搜索引擎技术基于开源的Elastic Search,利用分布式索引、分布式检索、分布式缓存技术,实现分布式全文检索平台,提供对大规模索引数据的高效管理与快速、灵活的访问能力。通过搜索引擎技术,综合利用文本挖掘、自然语言处理、信息检索等领域的技术,进一步提高全文检索的查准率、查全率。该技术的应用,可以满足大规模不同业务数据的统一检索的需求;并同时满足大规模数据检索请求的快速响应要求。

Elastic Search;电力;云计算;大数据;分布式全文检索;单点登录

随着大数据时代的来临,数据以极快的速度增长,形成了文本数据、图片以及声音视频等多媒体数据在内的海量数字资源。电力企业也不可避免地面临着大数据信息浪潮的冲击。

经过多年的信息化发展,电力企业内部已经建立起很多以SG186营销业务应用系统、用电信息采集系统、电力生产调度系统等为代表的应用系统,并产生了大量的结构化、半结构化、非结构化数据。这些数据分散在各个业务系统,无法被有效的快速检索。为了解决企业信息系统间的数据孤岛问题,需要构建集中、统一、稳定、高效的检索平台,形成覆盖电力企业各门类的信息资源共享体系[1-2]。

通常用关系数据库来存储结构化数据,再用关系数据库管理系统(例如ORACLE)管理这些数据,性能一般能满足用户检索要求。但是关系数据库在存储大量非结构化数据和稀疏数据时,暴露出一系列问题,其查询速度也很慢[3-5]。而全文检索技术能快速高效的查询这些数据。随着电力企业业务的发展和企业规模的壮大,企业内的数据量的不断增长,电力企业急需搭建自己的全文检索平台,如何快速定位所需资料以及如何从大量文本资料中快速找到关键信息成为一个难题。由于内涵和外延的深刻变化,全文检索系统已成为新一代管理信息系统的代名词,衡量全文检索系统的基本指标也逐渐形成规范[6-8]。

本文根据Elastic Search的特点和大数据时代的大量搜索问题,利用云计算及大数据技术,基于Elastic Search,实现以“求索”搜索引擎为核心的电力企业级分布式全文检索系统,并确保全文检索系统的高性能、可扩展和可维护的特性。

1 技术综述

1.1 云计算及大数据技术

云计算(cloud computing)是继个人电脑、互联网之后电子信息技术领域又一次重大变革。其通过虚拟化有效地聚合各类资源;通过网络化按需供给资源,通过专业化提供丰富的应用服务;这种新型的计算资源组织、分配和使用模式,有利于合理配置计算资源并提高利用率、降低成本、促进节能减排,实现绿色计算。大数据是一系列信息技术的集合,包括数据采集、数据管理、计算处理、数据分析和数据展现5个关键技术环节[9-10]。

电力“求索”搜索引擎,利用阿里大数据计算服务ODPS,实现原始内容数据和索引结果的存储。大数据计算服务ODPS(open data processing service,简称ODPS)是由阿里云自主研发,提供针对TB/PB级数据、实时性要求不高的分布式处理能力,应用于数据分析、挖掘、商业智能等领域[11-13]。

1.2 分布式技术

随着业务的发展,电力企业内部数据量与日俱增,电力企业希望搭建一个分布式全文检索系统,需要用到分布式技术。

分布式技术主要包含分布式计算和分布式存储2个方面。电力“求索”搜索引擎是分布式存储的数据源基础上进行的分布式全文检索,因此需要研究分布式技术。elastic search是一个实时的分布式搜索和分析引擎,支持云服务。它是基于Apache Lucene搜索引擎的类库创建的,提供了全文搜索能力、多语言支持、专门的查询语言、支持地理位置服务、基于上下文的搜索建议、自动完成以及搜索片段(snippet)的能力。

1.3 全文检索技术

1.3.1 检索技术

检索技术就是检查并索取所需要的文字或资料,从网络信息、文献资料等信息集合中查找到所需信息和资料技术。为了进行快速检索,通常需要对资料中的关键词进行索引。而全文检索因为其包含信息检索的彻底性、原始性等特点获得快速发展,已经发展为目前特别高效的检索技术[14-17]。

1.3.2 全文检索技术

全文检索技术,就是以文字文本、音频、图片、视频等数据作为主要处理对象,用以检索信息的内容,而不是其外表特征的一种检索技术,它是一种面向全文内容进行搜索的新技术。简单的全文检索可以用于进行字符串匹配的,高级全文检索技术可以开发出一个对超大文本、音频、图片、视频等非结构化数据进行综合管理的大型软件。随着对全文检索技术研究的不断深入和应用的推广,全文检索系统已逐渐成为高效企业管理信息系统的典范。

1.3.3 全文检索平台

全文检索平台是利用全文检索技术开发的系统。全文检索平台是基于全文检索技术的服务系统,它主要用于提供全文检索服务。如图1所示为一个全文检索平台结构图,其中全文检索引擎,它是全文检索平台的关键部分与核心。由图1可以看出,全文检索引擎主要包括文本分析,创建索引和查询索引3大模块。其中,首先对各种格式的文档信息以及数据库数据进行信息抽取,然后根据文件类型选择不同的文本分析器进行文本分析,再创建索引,生成索引数据库,即创建索引模块。检索模块当用户输入查询条件时,首先也是进行文本分析,然后从索引数据库查询索引,最后将得到的结果返回给用户。除此之外,一个设计良好的全文检索系统还应该便于扩展与维护,应能支持形如进行中文处理、日志记录、支持WORD文档处理和下载等操作,所以在保证全文检索高效率的同时,还应该具有开放的框架和体系结构。

图1 全文检索平台结构图Fig.1 Structure diagram of full-text search platform

1.4 单点登录技术

单点登录(single sign on),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

单点登录技术,可以应用于检索结果的展现。检索结果的信息来源于各业务系统,例如,电力用户档案资料来源于电力SG186营销业务系统,可以利用单点登录,实现检索结果在电力营销业务系统的展现,实现良好的用户体验。

1.5 自然语言处理技术

由于文本数据以及用户检索输入基本由自然语言构成,因此自然语言处理技术是辅助检索应用的重要组成部分。自然语言处理技术包括分词、词性标注、句法分析、命名实体识别等,这些技术的应用有助于提高检索系统对数据和用户检索语义的理解,从而进一步提高检索指标如查准率、查全率等。

1.6 Elastic Search

Elastic Search(简称ES)是一个基于lucene构建的开源、分布式、RESful搜索引擎。在云计算中,ES能够达到实时搜索,稳定,可靠,快速,支持通过HTTP使用JSON进行数据索引。

ES索引采用倒排索引机制构建索引。倒排索引与正排序索引不同,正排序索引面向文档,倒排索引面向单词,存储的是由一组键值对组成的索引项。ES索引数据结构包括项、域、文档和段,如图2所示。

图2 ES索引的数据结构图Fig.2 ES index data structure diagram

1)项(term):最小的索引单位,直接代表一个关键词以及其在源文档中的出现位置和出现次数等信息。

2)域(field):一个关联的元组,包括域名和域值。域名是一个字符串,域值是一个项。

3)文档(document):包括所有域信息。

4)段(segment):包含若干文档,若干段组成子索引或索引。

2 设计与实现

文中叙述了云计算及大数据技术、分布式技术、全文检索技术、单点登录技术、自然语言处理技术以及开源Elastic Search搜索引擎。文中利用上述研究成果,设计和开发基于云计算及大数据技术的电力“求索”搜索引擎全文检索系统,实现elastic search搜索引擎在电力企业的应用。

当前主要实现电力企业级数据中心对大规模不同业务数据的统一检索的需求,并对搜索结果,基于原始数据所在系统的不同业务功能,利用单点登录技术进行展现。

检索模块通过模拟百度、Google等搜索引擎,以电力一线班组关键信息检索为例,达到如图3所示效果,其中包括对“杭州”、“服务”、“电费回收”等关键词文本的检索,高亮显示关键词以及分页查询等。

2.1 总体设计

根据功能需求,本文研究开发以开源软件elastic search为基础,以hadoop技术为主,基于阿里的ODPS,应用struts2、spring框架建立一个适用于电力企业全文检索引擎系统,能做到对企业内不同业务系统的全文检索。同时本系统提供一个简易的管理界面,管理员登录可查看索引数据库,也可以选择对新增文档进行增量索引,然后合并到主索引库中。

电力“求索”搜索引擎全文检索系统基于elasticsearch,同时利用部分开源的、功能强大和扩展性强的第三方控件进行封装和二次开发,如hadoop、spark、kafka等。

图3 检索效果图Fig.3 Retrieval effect diagram

为了更好地用户体验,本系统还设计了一套简单美观的查询界面。电力“求索”搜索引擎全文检索系统总体设计如图4所示。

图4 搜索引擎全文检索系统总体设计图Fig.4 Search engine full-text search system design

2.2 功能设计

针对用户输入的关键字进行全文检索,找到最匹配用户需求的记录,并针对用户的输入及可获取的其他信息如用户属性等,对查询结果按相关性大小进行排序。系统考虑的主要指标包括:查准率、查全率、响应时间(计算复杂度)等。因此要提供的系统能力包括:

1)对数据的快速全文检索能力。利用倒排索引,基于反向索引以加速在大规模文本数据定位相关信息的能力。

2)检索相关性。衡量检索能力的基础指标是查准率和查全率。查准率标志着检索系统的精确度,即检出的结果中正确的数据所占的百分比;查全率标志着检索系统检出相关信息的能力,即检出的相关结果与全部相关结果的百分比。

根据业务和数据等的不同,可以综合应用多种实现技术以提高检索指标,如以下常用技术:

1)基于文本的向量空间模型或者概率模型计算数据与用户检索输入的相关性。

2)基于用户显式反馈或者伪反馈迭代计算相关性。

3)基于语义联想(如基于本体或者LDA模型)以提高检索的查准率和查全率,

4)基于文本挖掘技术如聚类等提高检索结果的直观性。

电力“求索”搜索引擎全文检索系统功能设计如图5所示。

2.3 集成设计

电力“求索”搜索引擎全文检索系统包括以下独立子系统:索引数据同步系统、检索应用、分布式检索平台。其内外部之间的集成关系如图6所示。

数据源来自阿里ODPS、RDS等,通过数据批量抽取工具进行数据批量抽取,利用分布式消息系统kafka进行数据实时同步,分别实现索引批量构建和索引实时构建。检索应用系统是整个系统的核心,利用分布式数据分析平台实现分析结果导入、分析数据加载;通过配置ES的jdbc-datasource.xml、odpsdatasource.xml配置文件,实现数据源管理;通过任务管理调度,进行索引构建。

2.4 分词和字典实现

2.4.1 分词实现

全文检索最关键的就是把用户最想要的相关度最高的结果放在最前面,也就是优先考虑查准率,再考虑查全率。单汉字分词在索引和检索中保证查全率较好,但为了取得更好的相关度,词典分词检索效果更好。分词应实现:1)支持对中文、英文、数字混合语句进行较正确的分词;2)支持根据需要选择多种分词技术,如一元分词、N元分词、基于中文词典的分词、基于中文统计模型的分词等。

图5 搜索引擎全文检索系统功能设计图Fig.5 Search engine full-text retrieval system functional design

图6 搜索引擎全文检索系统集成设计图Fig.6 Search engine full-text retrieval system integration design

2.4.2 字典实现

全文检索需要一个词库,而词典需要实时更新和维护,如果不维护,随着业务的发展,词典迟早会跟不上企业的内部需求。因此,应实现分词的维护管理。基于Web,实现对词典的分类、批量管理,包括:多词典分类管理、批量增加单词(支持一个输入框输入多个单词,每个单词以空格间隔);删除单词、分页展示、搜索、按词典类别批量导入(支持基于文本形式)。

利用elastic search默认的分词词库构建基本分词词库,主要包括主词典词库、介词词库、量词词库、停用词词库、后缀词词库,姓氏词库。此外还可以扩增加基本分词词库扩展、敏感词词库、语义扩展词词库、同义词词库等,并可以自动完成词词库。

Elastic search本身的中文分词插件效果有待改进,手动添加词典可以在一定程度上进行弥补。mmseg的分词机制采用正向最长匹配算法,例如,针对“小时代”这个单词,其自带的词典中没有包含该词,故当用户搜索小时代时,检索不到任何结果。手动添加新单词到mmseg的词库中,有2种方法:一是将该词加入到自带的某个词典中(非停顿词词典),如words-my.dic;二是新建一个自定义词典,将其放入默认词库文件夹下,编码格式为UTF-8。

2.5 索引模块构建

由于涉及多个不同系统之间的数据同步,为了满足检索系统对数据的一致性、实效性的要求,需要提供不同的数据采集及索引构建策略:

1)数据全量抽取及索引构建。为了保证索引数据与业务系统数据之间的一致性,系统需要定期对全部索引数据进行重建。

2)实时同步。对于需要实时(准实时)被检索到的业务数据,需要进行实时索引数据构建。

3)定期增量同步。由于索引系统独立于业务系统或者消息中间件,需要保证异构系统之间的数据一致性。

ES是基于lucene的全文检索技术,其索引技术的底层实现和lucene—样。因此将创建索引的过程分为4步:从存放元数据的oracle数据库获取数据;解析生成field对象;构建document对象;index writer建立索引。其中field对象的生成是按照oracle数据库字段和ES索引中字段的对应方式进行,流程如图7所示。

图7 ES索引数据库构建流程图Fig.7 ES index database construction flow chart

按照以上方法和步骤,构建了基于云计算及大数据技术的电力“求索”搜索引擎全文检索系统的索引,如图8所示。

图8 “求索”搜索引擎全文检索系统索引图Fig.8 The“Search”search engine full-text indexing system

2.6 检索模块构建

索引创建设计是为了检索做准备,利用ES提供的检索功能,结合电力特点,进行良好的界面设计,实现用户体验良好的简洁搜索页面。检索模块包括检索分析处理和检索结果处理。检索页面如图9所示。

图9 ES检索页面图Fig.9 ES retrieves the page map

2.6.1 检索分析处理

通过对检索条件进行分析,如通过分词、主题提取、语义扩展等技术手段,从文本上最大限度地获取用户真实需求,构建相应的检索条件,从而在索引库里搜索到最可能满足用户需求的数据记录。

检索分析处理时,基于预建的词库,根据用户的部分输入,自动提示可能的后续的未完成部分。如用户输入“电”,系统自动提示“电费”、“电量”等一系列可能的输入。

2.6.2 检索结果处理

综合利用结果聚类、自动摘要、数据去重、信息过滤等技术手段,对检索结果进行处理,以满足用户对检索结果的人性化反馈的需求。

为了更好地展现检索结果,通过合适的排序,采用单点登录技术,在对应的业务系统里展现搜索结果。

3 实施效果

基于云计算及大数据技术的电力“求索”搜索引擎全文检索系统部署完成后,我们对业务高峰期系统搜索请求量较大的业务查询成功量进行了统计。在部署前后一天中选择了5个业务高峰时段,分别提取了该5个时间段相同时间点5 s搜索成功量的数据,并计算出每秒搜索成功速率。

经分析得出,系统部署后平均速率达到了每秒496条,相比部署前每秒不足260条的效率提升了近1倍。同时,对数据库服务器的资源消耗情况也进行了分析。部署ES之前,在业务高峰时段,数据库服务器的CPU平均使用率20%以上,内存消耗控制在40%以上;部署ES之后,同等条件下CPU使用率和内存使用率均降到了10%以内。由此可见,ES系统不仅大大提高了搜索效率和用户满意度,同时也降低了数据库服务器资源的消耗,降低了维护成本,保障了系统的稳定运行。ES系统性能监控如图10所示。

图10 ES系统性能监控图Fig.10 ES system performance monitoring chart

4 结语

本文在深入研究云计算及大数据技术、分布式技术、全文检索技术、单点登录技术、分词技术和全面剖析elastic search相关技术的基础上,实现了基于云计算及大数据技术的电力“求索”搜索引擎全文检索系统。结合文本挖掘、自然语言处理、信息检索和单点登录等领域的技术,进一步提高全文检索的查准率、查全率,创新检索结果在各业务系统的展现效果。本技术的应用,可以满足大规模不同业务数据的统一检索的需求;并同时满足大规模数据检索请求的快速响应要求。

[1]刘峰.大数据时代下的数据插补与预测研究[D].兰州:兰州大学,2015.

[2]刘晓萌.电力云计算平台资源调度策略的研究 [D].北京:华北电力大学,2015.

[3]李爱军,王海滨,郑晓波.基于推理控制策略的智能型电力搜索引擎的研究[J].西华大学学报(自然科学版),2008,27(6):34-37.LI Aijun,WANG Haibin,ZHENG Xiaobo.Research on intelligent electric power search engine based on inferential control strategy[J].Journal of Xihua University(Natural Science Edition),2008,27(6):34-37(in Chinese).

[4]王德文.基于云计算的电力数据中心基础架构及其关键技术[J].电力系统自动化,2012,36(11):67-71.WANG Dewen.Basic architecture and key technologies of power data center based on cloud computing[J].Automation of Electric Power Systems,2012,36(11):67-71(in Chinese).

[5]张莲梅,陈世鸿,陈红梅,等.基于分布式电力资源库的搜索引擎框架[J].高电压技术,2005,31(8):66-68.ZHANG Lianmei,CHEN Shihong,CHEN Hongmei,et al.High Voltage Technology,2005,31(8):66-68(in Chinese).

[6]李江华,宋玮,卢岩,等.基于云技术的整定计算数据中心的构建[J].南方电网技术,2013,6(5):53-56.LI Jianghua,SONG Wei,LU Yan,et al.The construction of cloud computing data center[J].China Southern Power Grid Technology,2013,6(5):53-56(in Chinese).

[7]万勇.一种基于云计算技术的SCADA系统设计[J].高压电器,2013,49(7):89-91.WAN Yong.A design of SCADA system based on cloud computing technology[J].High Voltage Electrical Equipment,2013,49(7):89-91(in Chinese).

[8]王健,宋述停,兰俊美,等.电力需求侧大数据应用模型的建立[J].电力与能源,2014,35(3):283-286.WANG Jian,SONG Shuting,LAN Junmei,et al.Establishment of large data application model for power demand side[J].Electric Power and Energy,2014,35(3):283-286(in Chinese).

[9]白红伟,马志伟,朱永利.基于云计算的绝缘子状态监测数据的处理[J].电瓷避雷器,2011(4):19-22.BAI Hongwei,MA Zhiwei,ZHU Yongli.Insulator condition monitoring data based on cloud computing[J].Insulators and Surge Arresters,2011(4):19-22(in Chinese).

[10]张根周.大数据在智能电网领域的应用[J].电网与清洁能源,2016,32(6):114-117.ZHANG Genzhou.Application of big data in smart grid[J].Power Grid and Clean Energy,2016,32(6):114-117(in Chinese).

[11]唐慧.云计算大数据运行控制技术对智能配电网影响的评价研究[J].电力科学与工程,32(4):32-35.TANG Hui.Cloud computing large data operation control technology impact on intelligent distribution network evaluation[J].Power Science and Engineering,32(4):32-35(in Chinese).

[12]曲朝阳,熊泽宇,颜佳,等.基于空间分割的电力大数据三维全景可视化场景管理方法[J].华北电力大学学报:自然科学版,2016,43(2):23-29.QU Zhaoyang,XIONG Zeyu,YAN Jia,et al.A 3D panoramic scene management method for large power data based on spatial segmentation[J].Journal of North China Electric Power University:Natural Science Edition,2016,43(2):23-29(in Chinese).

[13]孙大雁,丁杰,彭林,等.面向多级调度管理的云搜索体系架构研究[J].江苏电机工程,2013(6):5-7.SUN Dayan,DING Jie,PENG Lin,et al.Research on cloud search architecture for multilevel scheduling management[J].Jiangsu Electric Engineering,2013(6):5-7(in Chinese).

[14]荀挺,张珂珩,薛浩然,等.电网调控数据综合智能分析决策架构设计[J].电力系统保护与控制,2015,43(11):121-127.XUN Ting,ZHANG Keheng,XUE Haoran,et al,Integrated smart grid control data analysis and decision framework design[J].Power System Protection and Control,2015,43(11):121-127(in Chinese).

[15]熊小伏,陈星田,翁世杰.支撑大数据分析的发电厂变电站全息录波方法[J].电力系统保护与控制,2015(22):17-22.XIONG Xiaofu,CHEN Xingtian,WENG Shijie.The power plant substation to support large data analysis of holographic recording method[J].Power System Protection and Control,2015(22):17-22(in Chinese).

[16]衡星辰,周力.分布式技术在电力大数据高性能处理中的应用[J].电力信息与通信技术,2013.HENG Xingchen,ZHOU Li.Application of distributed technology in high power data processing[J].Power Information and Communication Technology,2013(in Chinese).

[17]徐创学,温新明,周建武,等.基于云计算工业视频级联的生产实时监控管理系统开发与应用[J].热力发电,2014(1):27.XU Chuangxue,WEN Xinming,ZHOU Jianwu,et al.Development and application of real-time monitoring and management system based on cloud computing industrial video cascade[J].Thermal Power Generation,2014(1):27(in Chinese).

Research on Power Search Engine Technology Based on Cloud Computing and Large Data

LOU Fengdan1,PEI Xubin1,WANG Zhiqiang1,JI Deliang2
(1.State Grid Zhejiang Information&Telecommunication Company,Hangzhou 310007,Zhejiang,China;2.Zhejiang Huayun Information Technology Co.,Ltd.,Hangzhou 310008,Zhejiang,China)

After years of information technology development,the enterprise has established a large number of heterogeneous applications,resulting in a large number of distributed structured,semi-structured,unstructured data.Based on the cloud computing and large data technology,the“Search”search engine technology builds a centralized data center full-text index,achieving large-scale business functions and business data of the unified search to meet the user from a large number of heterogeneous business systems and mass data for rapid retrieval requirements.The search engine technology is based on the open source Elastic Search,with the use of distributed index,distributed search,distributed cache technology to achieve distributed full-text search platform to provide largescale index data,efficient management and fast,flexible access.With the help of search engine technology,text search,natural language processing and information retrieval are combined to improve the precision and recall of full-text retrieval.The application of this technology can meet the needs of largescale unified search of different business data,and can meet simultaneously the rapid response request of large-scale data retrieval request.

Elastic Search;power;cloud computing;large data;distributed full-text retrieval;single sign-on

2016-04-18。

楼凤丹(1963—),女,硕士研究生,高级工程师,主要从事电力系统及其自动化技术研究工作。

(编辑 张晓娟)

国网浙江省电力公司信息化建设项目(7111XT150 015)。

Project Supported by The State Grid Zhejiang Electric Power Company Information Construction(7111XT150015).

1674-3814(2016)12-0086-07

TM64;TM743

B

猜你喜欢
全文检索分词搜索引擎
分词在英语教学中的妙用
结巴分词在词云中的应用
结巴分词在词云中的应用
Oracle数据库全文检索性能研究
网络搜索引擎亟待规范
全文检索引擎Lucene系统模型与应用研究
全文检索引擎技术在电子病历中的应用
基于Nutch的医疗搜索引擎的研究与开发
基于Lucene搜索引擎的研究
搜索引擎,不止有百度与谷歌