基于Lucene的电力客户搜索引擎设计论文_马吉科,祝永晋,于广荣

(江苏方天电力技术有限公司 江苏南京 211102)

摘要:电力客户信息是供电企业开展电力工作的基础,如何快速准确定位用电客户,将直接影响到营业业务、电费电价管理、计量管理、客户用电安全管理等多项电力工作的工作效率。本文通过研究Lucene技术,搭建基于Lucene实现的用电客户搜索引擎系统,提高供电公司业务工作效率。

关键词:电力客户;搜索引擎;Lucene;

0 引言

目前电力公司已经建立了营销系统、用采系统等多套系统来为用户提供相应的电力服务工作,但是这部分系统都是基于传统的数据库建立,业务处理时都需要准确的用户信息才能得到查询结果,而实际上由于多种原因使得系统内部有大量电力客户信息存在不完整或不准确的情况,使得数据质量上存在较大问题,造成用电客户信息不能及时查询到,从而影响了业务办理的效率。

为此,本文通过Lucene搭建个性化电力客户搜索引擎,实现电力客户快速定位,提高了业务办理效率。

1 Lucene简介

1.1 Lucene简介

Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。是目前最为流行的基于 Java 开源全文检索工具包[1-2]。

1.2 倒排索引

Lucene将输入数据以一种称为倒排索引(inverted index)的数据结构进行存储。在进行关键字快速查找时,这种数据结构能够有效的利用磁盘空间[1-2]。

2 方案概述

2.1 系统架构

系统由数据采集、数据索引、数据检索、数据交互四部分组成 ,如下图所示:

图1 系统架构图

数据采集:通过全量和增量两种方式从结构化数据库中获取原始数据,并对客户数据进行组织处理为Lucene接收的数据格式;

数据索引:索引程序通过中文分词及过滤器,将客户信息中的字符串进行分词及其他处理,并将返回的所有字符串进行倒排处理后添加到索引库;

数据检索:负责查询条件预处理、组织查询条件、对查询结果进行过滤和排序;

数据交互:包括搜索界面、结果展示与数据接口,搜索界面与结果展示是系统和用户交互的界面。数据接口为其他系统、APP、微信等系统提供接口,通过调用接口实现电力客户信息搜索。

2.2 数据采集

数据采集模块负责获取传统数据库中的客户信息,并对客户信息进行组织处理。主要通过全量采集和增量采集两种方式实现。

2.2.1 全量数据采集

系统搭建完成后,首次运行需要对所有用电客户信息进行采集,这就需要采用全量方式进行采集,全量方式处理的数据量大, 所需时间长,因此只适用于在首次或算法进行重大调整时,需要对所有数据进行重新索引时使用。

2.2.2 增量数据采集

由于客户数据信息每天都发生变化,因此需要对客户信息进行实时更新,但由于全量采集所需时间长,不能满足数据变化的需求,因此需要通过增量采集方式对只对变化的数据进行采集,从而使数据处理时间大为减少,适用于日常维护过程中使用,既保证了数据有效性又不影响数据检索效率。

2.3 数据索引

Lucene索引过程分为3个主要操作步骤:创建文档、分析文本、添加索引文档[1-2]。

创建文档:将原始文档转换为文本过程在数据采集过程已经进行处理,并将处理数据保存供数据索引时使用。

分析文档:在索引操作时,通过中文分词技术和过滤器结合来分析文本,将文本数据分割成语汇单元串,然后对它们执行一些可选择操作。

添加索引文档:写入数据分析完毕后,就可以将分析结果写入索引文件中。

2.4 中文分词

目前常用的应用于Lucene 的中文分词器有mmseg4j、ansj 、jcseg、ik、paoding等多种。由于系统主要是对姓名和地址进行处理,通过对各种分词器的分析比较,系统采用jcseg分词,并对算法进行了优化,完善了姓名识别词库,丰富了地址词库,最终使得分词效果能够满足系统的应用。如“江苏省南京市”分词后的结果为“江苏/江苏省/南京/南京市”,这样保证了在使用“江苏”,“江苏省”检索时都能检索到该信息。

2.4.1过滤器

姓名处理:由于电力客户姓名中存在相似音,为了能够定位到这部分客户,需要对电力客户姓名实现相似音搜索,系统对分词器识别的电力客户姓名,增加了姓名拼音识别处理,将识别后的结果作为分词数据添加到索引中。如:内容:张三;处理结果:zhang1san1、zhangsan

地址处理:由于存在多种原因:1)地址名称更改(如县改为区等);2)录入时使用简称或全称;3)由于同音词存在使得录入不一致。为了实现对这部分地址信息的识别,系统对分词器识别的地址信息制定了相应的处理策略。

对于前两种情况,系统根据地址信息的特点,对包含“省、市、区、县、乡、镇、村”的地址,增加相应的简称,如:内容: 江宁区\江宁县;处理结果:江宁

对于同音词的处理,通过分析小区信息,增加了地址同音词词库,使得系统能够识别相应的同音词。如:内容:花园;处理结果:花园、花苑

2.5 数据检索

2.5.1 检索条件预处理

为体现易用性,在对搜索条件识别时,对搜索条件进行预处理。

系统能够支持一定的容错性。例如:针对供电单位(江宁营业部、江宁、江宁区、江宁供电公司、江宁局、江宁供电局),关键字将均被识别为“江宁营业部”

2.5.2检索结果排序

在Lucene内部排序的基础上,系统进一步根据姓名汉字和拼音音调的综合匹配程度进行评分和排序。如搜索“张三”时:

2.5.3检索结果过滤

系统根据登录用户的单位及地域信息对搜索结果进行过滤,如属于“江宁营业部”的用户进行用户搜索“张三”时,则将与“江宁营业部”匹配的用户客户进行展示,而其它区域的电力客户将不展示。如此大大缩小了电力客户搜索结果数量,同时也更符合用户意愿。

2.6 结果展示

类似于Google、百度等搜索引擎界面。在搜索栏中输入关键字即可进行搜索。根据关键字对搜索的结果进行展示,提供用电客户姓名、客户编号、客户地址、供电单位、联系电话、身份证信息等内容,可查看用户其他详细信息。

3 总结

本文基于Lucene实现的电力客户搜索引擎,提供了更加丰富的搜索手段,实现电力客户的快速定位,提升了电力工作的工作效率。虽然本系统取得了一定的进展,但还有一些问题有待进一步的研究,如对数据采集的效率还需要进一步提高以便满足数据量日益增加的需要。

参考文献:

[1] Lucene实战(第2版).牛长流,肖宇,译.人民邮电出版社.

[2] 卢亮,张博文. 搜索引擎原理、实践与应用[M]. 北京:电子工业出版社.

论文作者:马吉科,祝永晋,于广荣

论文发表刊物:《电力设备》2016年第14期

论文发表时间:2016/10/10

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于Lucene的电力客户搜索引擎设计论文_马吉科,祝永晋,于广荣
下载Doc文档

猜你喜欢