APP下载

上海光源产品管理系统及其全文检索子系统的改进

2011-03-24佟兴帆邓辉宇李志明

核技术 2011年7期
关键词:全文检索文档客户端

佟兴帆 邓辉宇 李志明

(中国科学院上海应用物理研究所 上海 201800)

上海光源(Shanghai Synchrotron Radiation Facility, SSRF)的开发建设及长期维护、改进,对信息化系统有很高要求,如数据库系统、数据管理系统(Product Data Management,PDM[1])、项目管理等。其中,数据管理系统具有重要地位,借助PDM 项目的实施,能完善SSRF对海量数据的管理,将研发流程电子化,通过流程控制任务的进行和数据发放可提高管理水平、完善信息化体系。

PDM 产品数据管理是计算机应用领域的重要技术之一,是以软件技术为基础,以产品为核心,对产品相关的数据、过程和资源一体化的集成管理技术。目前流行的 PDM 软件有 PTC公司的Windchill, UGS公司的Teamcenter和IBM公司的PM等[2]。本文采用UGS公司的 Teamcenter平台搭建PDM。通过SSRF-PDM系统的实施和应用,达到如下总体目标:数据集中管理及有效的版本控制;实现分级权限控制、快速检索功能、远程检索和查阅工程文件;实现技术管理文件批转审批功能;完成各种文档格式转换并能使用统一文档浏览器;实现网上高速文件收发;完成与加速器实时数据库的连接。

现有的基于Teamcenter的PDM系统的检索结果是无序的。而对于检索系统而言,排序是一个核心问题(SSRF的海量数据查找尤为如此)。另一方面,目前的检索结果还存在满意度不高(尤其是对中文)、无匹配程度控制、使用率低、不能模糊匹配等问题。本文通过引进Lucene[3]完善系统的检索效果。

1 SSRF-PDM

1.1 系统结构

上海应用物理研究所网络(图 1)的所有客户端计算机和服务器同在一个局域网内,主干网带宽1000M,服务器和主干网间的带宽1000 M,而客户端计算机和主干网间的连接的带宽为 100M。根据SSRF目前的硬件配置情况,SSRF-PDM 系统服务分布在两台服务器上:DB服务器以及PDM服务器。通过VPN连接两个园区。

图1 SSRF-PDM系统网络结构Fig.1 SSRF-PDM network structure.

1.2 服务器和客户端模块配置(图2)

SSRF-PDM 系统构建采用美国 UGS公司Teamcenter Engineering 2005 SR1(以下简称TCEng2K5SR1),由于要和SSRF目前的Solid Edge、AutoCAD、Protel、TCEngVis(Teamcenter Engineering Visualization的简称)进行集成,所以选择Rich Client模式进行部署。在 PDM 服务器上,还要安装和配置第三方的服务,如HTTP Service、App Service等。

图2 SSRF-PDM服务器和客户端模块配置Fig.2 SSRF-PDM server and client module configuration.

1.3 客户端运行模式

SSRF-PDM系统提供 2种模式的 Rich Client(2-Tier Rich Client和4-Tier Rich Client)和 1种模式的Thin Client(Web Client)。2-Tier Rich Client需要在每一台客户端机器上单独安装 Portal和 TC Server服务(TC_ROOT),具有完全的功能,支持Solid Edge Manager、AutoCAD Manager、TCEng Vis、MS Office以及各种应用软件的集成。4-Tier Rich Client以OTW(Over The Web)方式通过浏览器从服务器上自动安装,并在服务器配置发生变化的时候自动完成系统更新。4-Tier OTW Rich Client方式不支持UG NX2 Manager和AutoCAD Manager,支持TCEng Vis。要求所有的OTW客户端将TCEng Vis安装在相同的本地目录中,其有些PDM功能受到限制。TCEng2K5SR1的Thin Client方式不在客户端安装任何软件,对客户端要求最低,只要客户端有 Web浏览器,就可以通过浏览器访问SSRF-PDM系统。Thin Client方式可以在WAN环境使用,只要有Internet连通就可使用PDM系统,较宜于远程使用。但是,这种方式主要用于数据浏览,不具有数据创建功能。

2 检索系统的改进

系统配置完毕运行测试时,发现SSRF-PDM系统自带的检索系统检索效果不理想。主要有如下问题:(1) 现有SSRF-PDM系统的检索结果无序; (2)检索结果满意度不理想(尤其是对中文); (3) 无匹配程度控制,输出大量无关信息;(4) 使用率低;(5) 对于某些格式的文件不能进行检索(比如.dwg)。

图3 Lucene的索引流程Fig.3 Lucene indexing process.

经调研,我们发现 Lucene是个很好的检索工具,可进行增量索引(Append),可对大量数据进行批量索引,可实现排序,且接口设计可用于优化批量索引和小批量的增量索引;能非常灵活的适应各种应用(只需前端有合适的转换器把数据源转换成相应结构);对中文检索的效果比较好。Lucene的索引流程如图3所示。

2.1 Lucene的索引与SSRF-PDM检索算法比较

SSRF-PDM自带检索工具所使用的算法,未建立很好的索引机制。它采用前向索引方式,即每个文档对应着该文档所包含的词或者短语的列表;Lucene采用的是反向索引(inverted index)机制,文档中的每个词或短语对应着一个文档列表,该列表中的文档是所有包含该词或短语的文档。该列表还会包含一些辅助信息,比如该词或短语在文档中出现的次数以及出现的位置等。这些信息会被用来对搜索结果进行排序。这种结构对于“哪些文档中包含单词X”这样的问题能快速得到搜索结果。

文本形式的文献正文转换为该文献中每个汉字在正文中位置索引信息列表,也就是从文本空间到位置空间的转换。此后每当用户输入一个词句时,算法就以检索词句的第一个字为基础,采用前方一致的方式搜索该汉字的索引,若无该汉字,则立即显示落选信息;若有该字,则根据该字的记录字段信息取出主文档中的响应记录,采用子字符串搜索函数,确定记录中是否有该词句。重复以上过程,直至命中的单字结果信息处理完毕。良好的索引机制和检索算法,使Lucene检索的速度得到提高。

2.2 Lucene向量空间模型[4]

将文档和用户的查询语句都表示成向量之后,就可利用文档向量和查询向量间的相似性来表示文档和查询间的相关性。为衡量文档向量和查询向量间的相似性,较常用的方法是使用余弦系数(cosine coefficient)。它可表示为:

该算法用两个向量的夹角的余弦值来表示两个文档之间或者文档与查询向量之间的相似程度。利用该算法,向量空间模型就能够计算出系统中的每个文档向量和查询向量的相似程度。计算结果的数值在0–1间,值越大说明相似程度越高,也说明这个文档和查询之间的相关性越高,这样就可以对查询结果进行排序,把相关性高的搜索结果排在前面。

该算法解决了系统自带的检索工具不能进行相关度排序的问题。因为自带工具只要检索到与输入关键字一致的结果便显示输出,不会进行继续对全文遍历而进行相关度计算,而对于海量的 SSRFPDM系统,结果排序是重要问题之一。

2.3 中文分词算法[5]

SSRF-PDM系统自带检索工具,由于不是为中文检索设计,对中文的查找效果远低于英文,而上海光源的很大一部分资料都是中文记录,所以需加入中文检索功能。由于中文不同于英文,词与词中间没有空格间隔,所以要分词后才能进行检索查找。Lucene提供的算法如下。

假设对 S=S1S2S3S4…… 进行正向最大匹配分词, 其分词算法可通过如下步骤进行:

(1)取一字 S1, 在词表中查找 S1。并保存是否成词标记;

(2)再取一字 S2 , 判断词表中是否有以 S1 S2为前缀的词;

(3)不存在, 则S1 为单字, 一次分词结束;

(4)存在, 判断S1S2是否为词, 并取以S1S2 为首的多字词的个数n;

(5)如n为0, 一次分词结束;

(6)否则再取一字 Si, 判断词表中是否有以S1S2….Si为前缀的词;

(7)若不存在, 则返回最近一次能够成词的S1S2….Si-1

(8)否则转(6);

(9)从字Si开始下一次分。

通过加入中文词典与中文分词,该系统对中文检索的效果大为提高。

3 检索系统的实现

为将 Lucene应用于 SSRF-PDM,开发了如下文件[6]。

3.1 CreateIndex.java

CreateIndex.java实现索引建立,为允许数据文件夹中出现文件夹嵌套,使用了递归的结构:构造方法调用private void indexDocs(File dataDir, String indexDir)进行索引建立,在 indexDocs方法中,将判断当前传入文件参数dataDir是目录还是文件,如果是前者,则递归调用indexDocs方法,否则调用indexFile方法。indexFile方法进行文件索引,在建立索引之前,首先判断索引文件是否存在,若索引文件不存在,则建立新的索引文件夹和索引文件,若索引文件存在,则在原索引基础上进行增量索引。

由于Lucene提供的增量索引机制的问题,在进行增量索引时,需进行先期处理:我们在建立索引时加入了名为information的field,它由文件的绝对路径和最后修改时间连接而成,能唯一确定一个文件,在进行增量索引时,需先判断当前索引是否已对当前文件建立了索引,否,就直接建立新的索引;是,则需将已建立索引删除后对当前文件建立新的索引,否则会出现重复索引的问题。

Lucene为实现全文检索,提供了一些特定的数据结构,包括document, field, term等,索引和搜索时只需新建或者操作这些数据结构即可。

3.2 indexSearch.java

indexSearch.java实现搜索和搜索结果的排序。软件要求对搜索结果进行排序,Lucene的搜索结果默认按照相关度降序排列,为提供相关度的升序排列,我们新建了一个SortField,分别用两种排列方式对其进行实例化,并用此 SortField实例化一个Sort类。

3.3 LuceneDOCDocument.java

LuceneDOCDocument.java实现doc格式文件的转化,静态方法 getDocument返回一个 lucene的document类型。LucenePDFDocument.java,LuceneEXCELDocument.java,LucenePPTDocument.java三类分别实现pdf, xls, ppt格式文件的转化,静态方法 getDocument返回一个 lucene的 document类型。

3.4 LuceneSearcher.java

LuceneSearcher用于软件GUI的实现。针对某些图片文件,比如Solid edge生成的.dwg,我们采取标题检索的方式找到图片即可。

4 检索系统测试[7]

通过对原PDM系统全文检索和Lucene改进的全文检索进行对比实验,如图4,可见改进后的Lucene全文检索能将查询结果按照匹配评分的高低排序给出,而原 PDM 系统全文检索查询结果为随机排列。改进后的评分和排序机制,基本实现了最相关的检索结果与用户需求目标相匹配。Lucene全文检索克服了 PDM 系统一次只能对某一种格式文件进行检索的不足,可同时对MSWord、MSExcel、MSPowerPoint等不同类型文件进行全文检索。

图4 原PDM系统全文检索结果(左)与 Lucene改进的全文检索结果(右)Fig.4 Full-text search results by original PDM system (left) and the results improved by Lucene (right).

5 结论

为了完善上海光源对海量数据的管理、将研发流程电子化,进行了产品数据管理系统(PDM)的开发。针对传统基于Teamcenter的PDM系统检索结果无序、检索结果满意度不高、无匹配程度控制、使用率低、不能模糊匹配等问题,引进了 Lucene检索系统,结果表明,Lucene能显著改善检索效果。下一步将继续对检索效率与检索文件类型进行改善。

1 熊琦.产品数据管理PDM系统功能与应用分析.电脑知识与技术(学术交流)[J].2007,4(19):10 XIONG Qi.Product data management system function and application analysis [J], Computer Knowledge and Technology, 2007,4(19) :10

2 贾广飞, 杨铁男.PDM的发展现状及其CIMS中的应用[J].河北工业科技.2002, 19(6): 35–38 JIA Guang-fei,YANG Tie-nan.Status and development of PDM and its application in CIMS[J], Hebei Journal of Industrial Science and Technology, 2002, 19(6) : 35–38

3 Otis Gospodnetic, Erik Hatcher.Lucene IN ACTION [Z].2006, 212–252

4 周登朋,谢康林.Lucene搜索引擎[J].计算机工程.2007.33(18): 95–96 ZHOU Dengpeng, XIE Kanglin [J].Lucene search engine,Computer Engineering, 2007.33(18): 95–96

5 王继明,杨国林.基于 Lucene的中文文本分词[J].内蒙古工业大学学报.2007, 26(3): 185–188 WANG Jiming,YANG Guolin.Chinese automatic wordcut base on Lucene [J], Journal of Inner Mongolia University of Technology, 2007, 26(3): 185–188

6 苏潭英, 郭宪勇, 金鑫.一种基于 Lucene的中文全文检索系统[J].计算机工程.2007, 33(23): 94–96 SU Tanying, GUO Xianyong, JIN Xin.Chinese full-text retrieval system based on Lucene [J], Computer Engineering, 2007, 33(23): 94–96

7 石磊.SSRF-PDM系统安装配置文档[Z].2008, 1: 1–3 SHI Lei.Configuration files of SSRF-PDM[Z], 2008, 1: 1–3

猜你喜欢

全文检索文档客户端
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于RI码计算的Word复制文档鉴别
Oracle数据库全文检索性能研究
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
全文检索引擎技术在电子病历中的应用
基于KySou的全文检索系统的分析与优化