[收稿日期]2014-04-
02 [作者简介]何萍(1979-)
,女,硕士,馆员,现主要从事图书馆信息化建设和数字图书馆等方面的研究工作。基于Lucene的全文检索管理系统设计与实现
何萍
(成都信息工程学院图书馆,四川成都610225) 李凡 (成都信息工程学院计算机学院,四川成都610225
)[摘要]全文检索是各种信息系统实现对各种繁多的电子文档进行分析处理的基础,而依赖于数据库的全
文检索功能存在许多局限性。Lucene是一种基于纯Java技术的轻量级的文本索引和查询引擎,几乎适合
于任何需要全文检索的应用。设计了一个基于Lucene技术的全文检索管理系统(idXMS
)
。全文检索管理系统(idXMS)采用纯Java技术实现,以Lucene作为核心引擎,总体上分为8个功能模块,分别是系统
管理器、索引管理器、查询管理器、文档解析器管理器、配置管理器、优化器管理器、I/O模块
和Lucene全文检索引擎。
[关键词]全文检索管理系统(idXMS);Lucene;Java技术
[中图分类号]TP391
[文献标志码]A [文章编号]1673-1409(2014)22-0035-
04 随着信息技术的发展,各式各样的电子文档取代了原来的纸制文献,用户面对海量的数据,如何更好、更准确的抓住所需信息,已经成为一道难题。随着全文检索技术的诞生,在一定程度上解决了这一问题。全文检索技术能对各种文档的信息进行提取,创建快速查询索引,是实现对文档的快速查,对信息进一步提炼加工的基础设施。因此,全文检索技术已被广泛的应用在信息系统中。然而,许多信息系统虽使用全文检索技术,但没有提供独立的全文检索模块,而是完全依赖于数据库提供的全文检索能力或SQL查询能力,这必然导致以下几点问题:应用与特定数据库邦定;增加了数据库的查询负载,可能引起整体性能的大幅下降;不利于数据在不同数据库产品间移植;系统全文检索模块没有组件
化,与其他模块间无法达到松散耦合。所以,建立一个独立的组件式的高效稳定的全文检索模块或全文检索服务系统已经成为新趋势。要设计如此的管理系统,Lucene技术的使用是必须的。Lucene是一个高性
能、纯Java的全文检索引擎,而且免费、开源[1]。Lucene是Ap
ache开源组织著名的开源项目,目前已得到广泛的使用和测试,具有良好的性能和可靠的稳定性。为此,笔者开发设计了一个以Lucene作
为核心引擎的全文检索管理系统(idXMS
)。1 系统设计
全文检索管理系统(idXMS)采用纯Java技术[2-3]实现,以Lucene作为核心引擎,总体上分为8
个功能模块,分别是系统管理器、索引管理器、查询管理器、文档解析器管理器、配置管理器、优化器
管理器、I/O模块和Lucene全文检索引擎(
见图1)。系统既可作为独立服务器提供全文检索服务,又能作为独立组件集成到其他信息系统当中。
此外,系统除了提供最基本的文本检索和查询功能,还具有以下功能:能对WORD、PDF、RTF、HTML等多种格式的文档建立索引,并可通过新增自定义的文档解析器来支持自定义文档;能建立并维护多个文档索引目录;支持文件系统、数据库或网络等多种索引存储方式;能定时自动合并优化索引,提高系统检索性能;系统配置基于XML,简单易维护。
2 系统的功能模块
2.1 Lucene全文检索引擎
Lucene全文检索引擎是整个系统的核心组成部分。Lucene中的索引(Index)对象有多个文档(Document
)·
53·长江大学学报(自科版) 2014年8月号理工上旬刊第11卷第22期
Journal of Yangtze University(Nat Sci Edit) Aug.2014,Vol.11No.22DOI:10.16772/jki.1673-1409.2014.22.025
图1 系统主要组成模块
对象,每个文档对象又包含多个
域(Field
)对象,每个域对象又包含众多的单词(Term)对象。
文档对象就表示一个实际要处理
的文档(如一个PDF文档)
,为了提高查询效率,Lucene采用增量
更新。一个新增的文档成为一个
子索引,称为“段”
,当子索引达到一定数量后就要合并这些子索引
以提高整体查询效率,这一工作主
要靠优化器对象(Op
timizer)来完成。文档中的“域”可以看作关系
数据库表的“字段”,Lucene中的域分为“Key
word”、“UnIndex”、“UnStored”、“Text”4种类型,Key
word类型用于表示短文本对象,如标题等;UnIndex类型用于表示不需要进行索引的对象;UnStored类型用于表示需要进行索引而不需要保存全文的大文本对象,如正文等;Text类型用于表示既需要索引又需要在索引中保存全文的大文本对象,如摘要等;通过以上分析,在设计该系统时为每个文档都预建了一组域。
在设计的整个系统中Lucene引擎主要具有以下功能:由配置管理器调用,在解析配置文件过程中创建新的索引;由索引管理器调用,新增或删除指定索引中的文档;由查询管理器调用,在指定的索引查询文档;由优化器调用,合并指定索引中的子索引。
基于java的图书管理系统2.2 系统管理器
为了提供统一的用户接口,在设计本系统时采用了设计模式中的正面(Facade
)模式,其他管理器模块由系统管理器类(XMSManager)控制和协调,系统管理器类本身采用了单实例(Sing
leton)模式[4]。系统管理器提供的API主要可分为以下几类:
1)索引操作 获取索引类别名称集合:getIndexNames(…);判断指定的索引是否存在:indexExists(…);获取指定索引中的文档数:getIndexNumDoc(…);优化指定的索引:op
timizeIndex(…)。2)文档操作 在指定的索引中添加文档:addDocument(…);在指定的索引中删除文档:remo-
veDocument(
…)。3)查询操作 获取指定索引中的所有文档:searchAll(…);在指定索引中进行查询:search(…);在指定索引的日期型域中进行查询:searchDate(
…);在指定索引的日期型域中进行日期范围查询:searchDateRang
e(…)。4)系统监视器操作 启动查询池监视器:startSPMonitor(…);停止查询池监视器:stop
SPMonitor(…);判断查询池监视器是否启动:isSPMStarted(…);启动连接池监视器:startCPMonitor(
…);停止连接池监视器:stop
CPMonitor(…);判断连接池监视器是否启动:isCPMStarted(…)。5)索引优化器操作 启动自动优化器:startOptimizer(…);停止自动优化器:stopOp
timizer(…)。2.3 配置管理器
系统的配置管理器类(ConfigManag
er)主要负责在系统启动时解析配置XML文件,提供系统各模块的初始化信息,同时在系统运行过程中负责提供Lucene引擎的IndexWriter和IndexReader对象实
例。为了保证数据的一致性,配置管理器类采用单实例(Sing
leton)模式(见图2)。2.4 索引管理器
系统的索引管理器类(IndexManag
er)主要负责对指定索引的具体操作,包括增删文档、优化索引、获取索引相关信息(如最大文档数、当前文档数、索引域名集合、索引单词集合等)等。索引管理
器类采用单实例(Sing
leton)模式,向系统管理器提供服务。·63· 理工上旬刊*计算机科学与电子信息工程2014年8月
图2 系统各模块包和类结构图
2.5 查询管理器
系统的查询管理器类
(SearchManang
er)是系统管理器中查询功能的最终实现者,能提供针对
单词、短语(多个单词)、前缀(p
re-fix)、模糊(fuzzy)
、通配符(wild-card
)和日期等多种方式的查询。由于查询是比较耗费系统资源的操作,
为了灵活的限制查询操作消耗的资源
总量,系统使用了查询对象池,可通
过配置XML文件中的<pool>元素的
属性来设置池中的最大活动实例数
(maxActive)
、最大空闲实例数(maxIdle)和最大等待请求数(max-
Wait
)。2.6 文档解析器管理器
系统的文档解析器管理器类(PaserManag
er)负责管理解析各种类型文档的解析器基类(DocParser)的子类对象。系统已预建了WORDParser、PDFParser、RTFParser、HTMLParser等子类,分别用于
解析Office Word文档、Adobe
PDF文档、RTF文档和HTML文档,从中提取标题、作者、正文、创建时间等文本(
如无相应的内容则可为空)。在设计系统时,为了便于自定义扩展新的文档解析器,采用了设计模式中的模版方法(Template Method)模式[4]。2.7 优化器管理器
系统的优化器管理器类(OptimizerManag
er)是系统管理器中优化器相关功能的最终实现者。由于引擎采用了增量更新方式,在一定时间内会存在多个子索引,如果子索引数量过多就会大大影响系统的
查询效率,所以必须不断进行合并子索引(
优化)的操作,但是在合并子索引过程中索引处于写保护和读保护状态,使系统无法提供服务,因此构建了优化器(Op
timizer)以守护线程的方式对索引进行定时优化(见图2
)。2.8 I/O模块
系统扩展了Lucene的I/O模块,使索引可以直接将索引存储于指定数据库中。为了便于扩展支持其
他数据库,采用了模版方法(Template Method)模式和工厂(Factory)模式[5],抽象基类DBDirectory继
承了Lucene的I/O模块中的抽象类Directory(对目录的抽象),而要支持其它数据库,需继承DBDirectory
实现其中的抽象方法,同时继承Lucene的I/O模块中的抽象类InputStream和Outp
utStream,并提供2个输入输出子类。
3 系统的配置文件
系统采用了基于XML的配置文件,下面给出配置文件的部分文档类型定义(DTD)
: ……
<!ELEMENT parsers(p
arser+)> <!ELEMENT p
arser EMPTY> <!ATTLIST p
arser name
CDATA#REQUIRED parserClass
CDATA#REQUIRED typ
eList CDATA#REQUIRED> <!ELEMENT
indexs(index+)> <!ELEMENT index(store,fields*)>
<!ATTLIST
index name
CDATA#REQUIRED·73·第11卷第22期何萍等:基于Lucene的全文检索管理系统设计与实现
useAutoOp
timizer(true|false)“true” op
timizeInterval CDATA“3600” useComp
oundFile(true|false)“false” analy
zerClass CDATA#IMPLIED similarity
Class CDATA#IMPLIED> <!ELEMENT store(fs|ftp|d
b)> <!ATTLIST storetype(fs|ftp|d
b)#REQUIRED> <!E
LEMENT fs EMPTY> <!ATTLIST fs p
ath CDATA#REQUIRED> ……
<!ELEMENT fields(field*)>
<!ELEMENT field
EMPTY> <!A
TTLIST field name CDATA#REQUIREDtype(key
word|date|text|unIndexed|unStored)#REQUIRED string
Value CDATA#IMPLIED providerClass
CDATA#IMPLIED boost
CDATA#IMPLIED> <!ELEMENT search-config(pool?,query
-boosts?)> <!ATTLIST search-config
parserClass CDATA#IMPLIED> <!ELEMENT p
ool EMPTY> <!ATTLIST p
ool maxActive
CDATA“100” maxIdle
CDATA“100” maxWait
CDATA“-1”>
……
图3 W
ebXMS查询界面4 系统应用与实现
基于Lucene引擎的全文检
索管理系统(idXMS)在Web上
的应用,基本用户查询界面如图
3所示。
5 结语
基于Lucene引擎的全文检
索管理系统(idXMS)具有独立
的组件式的高效稳定的全文检索
模块。因此使用Lucene技术来
构建一个信息管理系统将大大提
高系统中文查询效率,这也是全
文检索管理系统的研究重点。
[参考文献]
[1]Otis Gospodnetic.Advanced Text Indexing
with Lucene[EB/OL].http://www.onjava.com/pub/a/onjava/2003/03/05/lucene.html,2003-03-
05.[2]Scott Oaks,Henry Wong.Java Threads[M].OReilly
&Associates,1999.[3]Doug Lea.Concurrent Programming in Java:Design Principles and Patterns Second Edition[M].Addison Wesley
Longman,Inc,1999.
[4]Gamma E,Helm R,Johnson R,et al.Design Patterns:Elements of Reusable Object-Oriented Software[M].Addison Wesley
Longman,Inc,1994.
[5]车东.基于Java的全文索引引擎Lucene简介[EB/OL].http://www.chedong.com/tech/lucene.html,2014-08-25.[编辑] 张涛
·83· 理工上旬刊*计算机科学与电子信息工程2014年8月
31Design of AuthorizationRules in DRM Based on the Process Control in UCON Model
LI Ya-ping(Anhui Economic Management Institute,Hefei230059)
Abstract:Effective access control is the basis and prerequisite for digital rights management(DRM).In view of the deficiency of traditional DRM scheme in static authorization and coarse-grained,T
he design of new DRM authorization rules is based on the basic method of process control in usage control(UCON)model.The fine-grained authorization in the new rules can be realized by subdividing the attribute of subject and object and subdividing the type of rights,and the dynamic process authorization of DRM can be implemented by the judgment of attributes,obligations and conditions.
Key words:digital rights management(DRM);UCON process control model;authorization
35Design and Implementation of a Lucene-based Full-textRetrieval Management System
HE Ping,LI Fan(Chengdu University of Information Technology,Chengdu610225)
Abstract:Full text retrieval is to achieve a variety of information system analyses and processing based on various electronic documents,text and the database relying on search function have many limitations.Lucene is a pure Java lightweight text inde-xing and query engine based on almost any need,suitable for application in text retrieval.The design of a full text retrieval sys-tem is based on Lucene Technology(idXMS).The full text retrieval management system(idXMS)is realized by using pure Java technology.Lucene is used as the core engine,it is generally divided into8functional modules,such as the system manager,in-dex manager,query management,document parser manager,configuration manager,the optimizer manager,the I/O module and the Lucene full text se
arch engine.
Key words:full-text retrieval(idXMS);Lucene;Java technology
39College Campus Network Optimization and Managment Based on PPDRModel
WEI Yu-hua(Guangzhou Huali Science and Technology Vocational College,Zengcheng511325)
Abstract:Based on the current situation and requirement of Guangzhou Huali Science and Technology Vocational College,com-bined with the network design object and design rule,the scale,the type of application,the management and security require-ments of college campus network are deeply analyzed.The technical modeling is used to offer an affective slove scheme for the new campus,the network structure and its function need the second network project reform,it is used for better linking up be-tween the new and old campuses,for effective management,it raises the stability and reliability of the system.It successfully a-chieves optimization of network resource and managerial effectiveness.
Key words:PPDRmodel;campus network;network optimization;network management
42Design of Vehicle Door Wireless Control System Based on STC89C52
TAO Yu-gui,QIAN Feng,LI Chang-bo(Wuhu Institute of Technology,Wuhu241006)
Abstract:A design of vehicle door wireless control system based on high-speed microcontroller,and overall design of the sys-tem,hardware circuit and software design plan are introduced.The microcontroller STC89C52is selected,it is sultra-low power with anti-interference ability and can be compatible with8051.Relay control module is connected with the MCU P0port,it con-trols the motor reversing and the electromagnetic clutch.Wireless transceiver module uses low-power CMOS technology and low-cost encoding/decoding circuit PT2262/2272.The system can realize remote control of opening and closing the electric door,it also has a safety check and anti-pinch,the system can be practically applied with feature of simple structure,high performance-cost ratio.
Key word:wireless control system;STC89C52;PT2262/PT2272
45Design of Temperature Measurement and Control System in Shale Gas Fracturing Truck Based on LIN bus DENG Pan-deng,CHEN Yong-jun,XU Lu(Hubei Cooperative Innovation Center of Unconventional Oil and Gas(Yangtze University),Wuhan 430100;Yangtze University,Jingzhou434023)
Abstract:As a low cost serial communication protocol,LIN bus inherits the master-slave design idea
s of CAN bus,and it plays
a key role in the low-end application field.A temperature control system is designed for shale gas fracturing truck based on LIN
bus protocol.AT89S52is used as the controller of master and slave nodes,1602LCD displays the values of setting and measuring temperature,and DS18B20is used as temperature sensor.The master and slave nodes achieve the functions of temperature ac-quisition,setting,display and control based on LIN bus.The experiment results show that the system is stable and reliable and it is of great significance for the design of temperature measurement and control system in shale gas fracturing truck.
Key words:shale gas fracturing truck;temperature measurement and control system;LIN bus;AT89S52;LCD1602;
DS18B20;Protues
49The Intellectual Water Temperature Discoloring Shower Based on SCM HT46R47
GAO Fei-fei(Xuancheng Vocational&Technical College,Xuancheng242000)
Abstract:The intellectual water temperature discoloring shower is designed based on HT46R47.The core part of circuit is SCM HT46R47.It is composed of six parts,such as temperature detection,water testing,weak detection,LED lights,weak tips .The filled thermal system in shower head matches with program of SCM HT46R47,which controls LED illumination.According to different temperature indications,the LED illumination is in green,blue,red colors.Let the user feel the water temperature without touching temperature,but through identifying water temperature by vision.Its advantage is convenient sensitive and accu-rate.Except for these,the shower head has individual power supply system———stream generator supplies power for the whole cir-cuit.When the situation has inadequate electric tension,the shower head can give the prompting of weak current.So this is safe-ty,energy conservation and credibility.
Key words:showers;HT46R47;SCM;transducer;LED;stream generator
64Research and Application of the Aluminum Alloy Pull-rod Welding in Pure Argon Protection Condition HU Guang-lin,GUO Fu-jun,JIANG Wen-bo,HOU Ya-feng,KONG Xiang-ming(Henan Pinggao Electric Co.Ltd.,Pingdingshan467001)Abstract:Through the analysis of welding technology for aluminum alloy pull rod used in the extra-high voltage switch,the root face,root opening and groove angle etc.of the welding joint are improved,AC TIG weld is used in pure argon pr
otection condi-
Ⅲ
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论