铁路共享信息搜索引擎的设计

文章编号:1000-1506(2 00 3)02-0 033-0 5
铁路共享信息搜索引擎的设计
鲁 威,黄厚宽
(北方交通大学计算机与信息技术学院,北京100 04 4)
摘 要:讨论了搜索引擎的基本组成模块,以及各模块的作用和相互关系.并根据铁路信息的
特点给出了适合铁路共享信息搜索的引擎设计方案.设计所需技术主要有:分类检索技术、搜
索引擎技术、自然语言理解技术等.主要目标是使得铁路信息资源共享平台建立以后,该搜索
引擎能够提供全路范围内的各种共享数据的分类索引和查询,用户还可以通过智能化的用户
界面,查找到所需数据的存放位置和存放方法.
关键词:计算机应用;搜索引擎;索引;关键字
中图分类号:TP393 .09 文献标识码:A
The Design of Search Engine for Railway
Information Shared System
LUWei , HUANG Hou_kuan
(School of Computer and Information Technology ,Northern Jiaotong University ,Beijing 10 00 44 ,China)
Abstract :Illustrating the constituted modules of search engine and the relation of these modules .
The fundamental algorithms are reconstructed according to the characteristics of the railway information.
The design needs the following technologies : natural language processing technology ,
search robot technology and the Chinese and English index technology .The purpose of design is
to provide userswith a quick ,efficient andexact search tool at the railway information shared system.
This search engine is able to provide the indexes of all the railway information ,and users
could search the needed data through the intelligent user interface .
Key words :computer application ;search engine ;index ; keyword
由于铁路信息资源自身的特点,铁路系统的信息分布在全路各路局、分局、站段的各服务器中,涉及成
千上万个不同问题和不同主题的数据库、数据仓库和数据文件.用户往往不知道自己所需的数据存放在哪
里和如何存取.在铁路信息资源共享平台建成后,这个问题会更加突出.如何从数据海洋中找出全路任何
一个用户所需要的数据,实现现有共享信息的充分利用,关键在于设计一个功能强大、高速、高效且对用户
透明的全路信息搜索引擎.
Internet 上数据的分布与铁路类似,也分散在成千上万各不同地域、不同类型的计算机系统中.Internet
通过搜索引擎基本解决了这一问题.搜索引擎是一个网站,它的主要任务是在Internet 上主动搜索
Web 服务器信息并将其自动索引,其索引内容存储于可供查询的大型数据库中.当用户输入关键字查询
时,该网站会告诉用户包含该关键字信息的所有网址,并提供通向该网站的链接.
目前比较成功的搜索引擎有Yahoo !、Excite、Info Seek、Lycos、Alta Vista 等.尽管在Internet 上搜索技
收稿日期:2 00 2-0 7-08
作者简介:鲁威(1 9 79 —) ,男,湖北钟祥人,硕士生.email :flyhorse00 7 @ vcp .sina .com
黄厚宽(19 4 0— ) ,男,四川遂宁人,教授,博士生导师.
第27 卷第2 期
2003 年4 月
北 方 交 通 大 学 学 报
JOURNAL OF NORTHERN JIAOTONG UNIVERSITY
Vol .27 No .2
Apr .2003
术很成熟了[ 1~ 5 ] ,但是对于铁路信息的搜索来说其中有很多算法是要改进的,因为铁路信息主要是以数
据库表的形式存储的,对其中的信息进行查询就要按照这个特点来进行,这就是本文重点阐述的问题.
不过无论什么搜索引擎,基本上都是由3 个模块组成:robot 搜索程序,搜索引擎数据库,用户界面.因
此,铁路搜索引擎设计也从这3 个模块开始.
1 铁路共享信息的方案
在设计铁路共享信息搜索引擎之前,需要分析现阶段铁路信息的特点.铁路信息化建设自铁路运输管
理信息系统(TMIS)建设以来,已经取得了巨大的成绩.继铁路运输管理信息系统投入使用以后,铁路客票
发售和预定系统、调度管理信息系统、车辆管理信息系统、财务管理信息系统、货运计划系统相继开发,并
在一定范围投入使用.同时基础信息的建设和发展也为上述系统提供了坚实的基础.但由于没有信息化的
总方案,各个系统建设的过程基本上是相互独立,各自为战.现阶段,有必要着重研究铁路信息资源共享,
制定出一套有效的信息资源共享方案.
1 .1 建设目标
信息资源共享的目的是充分利用铁路信息资源.现阶段的主要任务是利用现有技术和已有资源设计
一个较科学的、符合实际条件的、面向应用的铁路信息资源共享模型,为铁路现有信息系统的改造、铁路新
建信息系统的建设提供指导性意见.根据文献[6]对铁路信息资源共享模型的要求是:①宏观决策信息和
微观基础信息并重;②着眼铁路的未来发展;③具有良好的可扩展性;④ 跨平台;⑤ 拥有统一的数据字典;
⑥设立统一的编码方案;⑦建立统一的MIS 间数据存取的接口;⑧应具备完善的元数据;⑨建立开放的共
享平台;⑩建立安全的共享平台.
1 .2 信息分类
由于本搜索引擎是建立在铁路共享信息平台上,因此应该充分利用共享信息的特点来为搜索引擎的
设计提供便利.根据铁路运输的特点,以及铁路共享信息平台[ 6 ] 对铁路信息的整合分类,将搜索信息分为
9 类:①运输信息;②机务信息;③工务信息;④电务信息;⑤车辆信息;⑥供电给水信息;⑦财务信息;⑧ 统
计信息;⑨办公信息.
根据以上信息的分类,在每个路局、分局建立相应的分类信息表,将服务器上的所有的表进行分类存
放.另外,由于该搜索引擎是构建在铁路共享信息平台的基础上,在平台中铁路信息系统采用统一的数据
字典,这就为表进行分类索引创造了条件.
2 搜索引擎的架构和用户界面
铁路共享信息搜索引擎是构建在铁路信息共享平台之上的,它根据铁路共享信息平台来和各个不同
地区的信息管理系统进行交互.它的安全性是由数据库安全模块提供的,铁路共享信息搜索引擎和铁路共
享信息的其他模块是一个有机的整体,共同实现铁路信息共享的目标.我们设计的铁路共享信息搜索引擎
的架构如图1 所示.
图1 铁路共享信息搜索引擎架构图
34
北 方 交 通 大 学 学 报 第27 卷
由于铁路信息的特殊性,其信息多以表的形式存储,而且往往是海量的数据,因此用户在查询时,如果
不加控制,有可能会查到上百万条甚至上千万条记录,这对用户来说是不可忍受的.因此,当用户要查询信
息时,首先让用户明确要查的是什么信息,是运输信息、车辆信息还是统计信息等等.在用户明确了要查询
的信息后,就要求用户输入查询表达式了,例如,“车次= 78 OR 发站= 北京AND 票价< 120”等等,通过
查询表达式,就明确了搜索的条件,同时也反映了用户要查询的信息范围.因此,在将查询信息提交之前,
必须先解析查询表达式,让它能被搜索程序所识别.
(1)文法解析器的设计.下面便是对查询表达式进行文法解析的BNF :
< expression > ::= < factor > | < factor > < expression > | < factor > AND < expression >
| < factor > OR < expression >
< factor > ::= < term> |NOT < factor >
< term> ::= < word > | (expression)
< word > ::= < id > < comp > 常数
< id > ::= 以空格结尾的标识符
< comp > ::= < | > | < = | > = | = | < >
对于解析结果,采用逆波兰式进行存储.例如,word1 < 12 and word2 > = 9
解析后便存储为:((wrod1 ,12 ,< ) ,(word2 ,9 ,> = ) ,and) .然后,将解析后的信息传给搜索程序,搜索程
序根据解析信息中的关键字便可以找到相应的要查找的表,根据逆波兰式便可以明确查询条件,从而保证
了查询的效率和准确率.
(2)文法解析器的实现.对上面的解析文法采用递归下降分析的方法进行分析.递归下降分析的基本
原理是:将一个非终结符A的文法规则看作将识别A的一个过程定义.A 的文法规则的右边指出这个过
程的代码结构:一个选择中的终结符和非终结符序列同相匹配的输入以及对其他过程的调用相对应,而选
择与在代码中的替代情况(case 语句和if 语句)相对应.
上面的文法,共有6 个非终结符,但是< id > 、< comp > 均是为了简化文法而加入的非终结符,因此只
需对< expression > 、< factor > 、< term> 、< word > 这4 个非终结符构造相应的函数.然后,按照递归下降
分析的方法和规则,编写这4 个具体的函数即可.当然具体实现时还要考虑出错处理,和一些其它的实现
细节.
(3)用户界面的设计.以上面的文法解析器为基础,界面形式如图2 .
图2 用户界面
界面中列出了9 种信息,当用户选中一种时,在下面的属性框中可以看到和该类信息相关的属性,用
户根据给出的属性填写右边的查询语句和查询目标,没有显示的属性表示用户不能对之进行查询.另外,
如果用户明确知道要查询哪个局、分局的信息,则用户可以填写地区选择信息,这样用户的查询将直接代
理到该局、分局的服务器上,不必在所有的局、分局服务器上查询.这样可以缩短查询时间,提高查询效率.
如果用户不知道具体的地区,那么查询时不得不遍历所有的局、分局服务器.至于查询语句的填写,用户必
须遵从前面定义的解析器文法.
35
第3 期 鲁 威等:铁路共享信息搜索引擎的设计
总之,对用户的查询必须进行导向,使用户可以有目的地查询信息.尽量避免用户漫无目的地查询.
3 搜索程序
3 .1 基本原理
搜索程序又叫robot 程序,robot 技术的基本原理和人工智能中的搜索树一样,在计算机中可以方便地
使用递归方法实现,具体如下:①根据首页进行搜索,相当于搜索树的根;②根据首页的第1 个链接转到下
一个页面;③重复①和② ;④到某页已经没有链接,回退到上一级页面的下个链接,如此循环往复.
由于铁路信息的特殊性,以及铁路自己的专用网络的速度优势,其搜索程序便有自己的特点.由于铁
路信息的地域分布极其广泛,因此搜索程序可以采用分布式结构.当响应用户查询时,搜索程序先查询本
地数据库,然后将查询代理到各个局、分局的服务器上查询,返回的查询结果将和本地查询结果进行综合
处理,然后将结果存入数据库、更新数据库,同时将结果返回给用户.各个局、分局服务器上存放着一个
robot .txt 的文件,robot .txt 文件上记录了搜索程序在这一区段将要搜索的所有的服务器的地址,因此,搜
索程序根据robot .txt 上提供的地址遍历这一区段上的服务器,并将查询结果返回.其具体搜索策略,就是
搜索一个搜索树,它的根节点是铁道部,robot 从铁道部服务器开始搜索,然后搜索局服务器上的信息,接
着搜索分局服务器上的信息,直到将搜索路径中的节点全部遍历一遍.
由于铁路通信线路足够快,可以将用户的查询命令直接代理到用户所选的局或者是分局的服务器上
查询,当局或者分局服务器返回结果时,如果查到一条信息就返回一条,会使网络繁忙,导致别的用户得不
到响应,所以,服务器可以使用缓存机制,可以每查到十条或者百条信息就返回信息一次,当用户阅读信息
时,服务器继续查询,然后再返回.其它时间,提示用户等待.
本地搜索引擎数据库中存放的数据是一段时间内用户最热门的查询,这样对用户的查询可以有最快
的响应速度.但是,怎样标志哪些信息是热门的查询呢? 这里可以采用一种比较简单的方式,对用户访问
过的表进行计数,如果某些表达到了一定的访问次数,则认为这些表的信息是热门信息,可以将它收入本
地搜索引擎数据库中.那么,下次用户查找相同的信息,就可以在本地数据库中直接查询.这样可以给用户
以最快的响应.
3 .2 算法实现
铁路共享信息搜索引擎的搜索策略和Internet 上的引擎搜索策略大致相同,描述如下:搜索程序先在
本地服务器上搜索信息,如果找到用户所需的信息,则将信息返回,如果没找到,根据robot .txt 中记载的
局、分局服务器地址来遍厉查找,直到robot .txt 中的地址全部被遍厉过.同时将查询命令代理到该局、分
局服务器上.在局、分局服务器上也要运行搜索程序,根据robot .txt 中记载的地址遍厉这一区段.
另外考虑到信息的安全性,搜索引擎的设计必须和数据库安全的设计结合起来,数据库安全的设计模
块应该给搜索引擎模块提供必要的服务.因此,在搜索引擎的设计中必须留出一个和数据库安全交互的接
口.根据数据库的安全属性,搜索引擎返回给用户不同的信息,用户权限越高看到的信息越多.这样可以明
确有些信息是供路内用户使用的,路外用户禁止使用,有些信息是供路外用户使用的.
根据以上的叙述,可以在每个局、分局服务器上对铁路信息数据库建立一个分类二维表.该表由4 个
字段组成:信息类别、表名、访问次数、安全属性,信息类别是上文所提到的9 种分类信息,表名是该类信息
所包括的表,访问次数表示该表被用户访问的频率,最后一项安全属性是用来控制用户访问权限的.
这个分类表提供了要搜索的表的信息,搜索程序根据用户需要的信息类别,直接到相应的表中去查
询,同时,访问次数项纪录了该表被查询的次数,用来统计该表是不是热门查询,安全属性是和数据库安全
进行交互的接口,标志了该表是给哪些用户访问的.
4 搜索引擎数据库索引的建立
由于铁路信息量的巨大,有些信息涉及很多的表,但是可以根据铁路信息的分类来建立索引.每一类
信息对应一定数目的表,另外,由于铁路共享信息使用统一的数据字典,因此表中的字段名是统一命名的,
比如,在某个表中车次字段用CHECI 来表示,那么在所有的表中车次字段都是用CHECI 来表示.统一的
数据字典使得索引的建立变得方便.
36
北 方 交 通 大 学 学 报 第27 卷
建立索引时,对于共享信息系统中的每一张表,在搜索引擎数据库中都有一个这个表的字段的集合和
它相对应,同时也标明该表属于哪类信息.这个索引表含有3 项:信息类型、表名、字段集合.信息类型是上
文所提到的9 种分类信息,表名是属于该信息的表的名字,字段集合是该表含有的字段名的集合.
比如,信息类型为运输信息,它包含客运表,客运表包含的字段有车次,发站,到站,发车时间,到站时
间等信息,这3 项信息便组成了索引表的一个元组,索引表就是这些元组的集合.查询时,将用户输入的字
段和表里的字段集合进行匹配,从而确定在哪些表中进行查询.
但是,考虑到数据库视图中同样有用户要查询的数据,因此,必须把视图信息也包含进分类表中.视图
分为物理视图和逻辑视图.对于物理视图可以把它像表一样对待,但是对于逻辑视图,由于它是动态生成
的,因此,不能用同样的方法.这些逻辑视图大部分是通过存储过程生成的,因此,可以将存储过程和信息
类型关联起来建立一个对应表.该对应表含有2 项:信息类型、存储过程名.
所以,查询时分两个步骤,先在表和物理视图中查询,如果,在表或者物理视图中能找到用户所需要的
信息,就可以返回了.如果找不到用户所要的信息,那么就要查相应的存储过程,执行存储过程后,在生成
的视图中查找用户所需要的信息.
另一种解决方案是基于倒排文件来建立索引.基本原理叙述如下:建立一个索引结构Index ,它包含2
项字段名以及包含该字段名的所有表名的集合.有了按字段名建立的索引,在查询时,就可以根据字段名
来确定到底有哪几个表包含该字段.现在举个例子来说明这个结构的作用.
比如,用户查询“发站= 北京and 票价< 90” 的所有车次.经过语法解析,提取出关键字(发站,票
价) ,然后在index[]数组中找到包含“发站”关键字的表的集合,再找到包含“票价”关键字的表的集合.然
后,确定用户所要查询的信息类型,比如是运输信息,这样进一步将查找范围缩小.最后剩下的表就是真正
包含用户所要查找的信息的表.对这些表进行处理就可以了.
5 结束语
搜索引擎的建立就是为了方便用户快速地找到自己想要的信息.为了能更好地进行查询,对于用户的
查询必须进行导向,避免用户进行无目的的查询.在用户的界面上,可以将各种信息所涉及的表的字段名
显示给用户,使用户可以选择要查询的关键字,以及想得到的结果的字段.当然,对于不同的用户,他看到
的字段是受到各种限制的,比如,路外用户可能只能看到有限的几条字段,而超级用户可能看到此类信息
所涉及的表的所有字段.比如运输信息,假设它涉及表t1 ,t2 ,t3 ,他们分别含有100 ,30 ,50 个字段,对于路
外用户,他所能看到的字段,可能只是如,车次,发站,到站,票价等等有限的信息;而对于超级用户来说,他
可以看到这3 个表的所有字段.同时,由于用户明确了所要查的是哪几个字段,通过这些字段可以明确用
户的一次查询涉及了哪几个表.因此,服务器将表信息、表之间的约束信息、字段信息等等提交给各个局、
分局服务器,然后在局、分局服务器上查询,最后返回信息.综上所述,铁路搜索引擎的设计具有自己的特
点,只有在充分了解铁路信息的基础上才能设计出理想的铁路搜索引擎.
参考文献:
[1] Filman R E , Pant S .Searching the Internet[J] . IEEE Internet computing ,19 98 ,2(4) :21 - 23 .
[2] Julian Bucknall .Google 搜索引擎的算法秘密[J] .程序员,2002 ,(5) :88 - 91 .
[3] Lawrence S, Giles C L .Context and Page Analysis for ImprovedWeb Search[J] .Internet Computing IEEE ,199 8 ,2( 4) :38
- 46 .
[4] Sellberg E ,Etzioni O .TheMetaCrawler Architecture for Resource Aggregation on theWeb[J] .IEEE Intellgent Systems ,
19 97 ,12(1) :11 - 14 .
[5] Codd E F .A RelationalModel for Large SharedData Banks[J] .Commun .ACM,1970 ,13( 6) :377 - 387 .
[6] 铁路信息资源体系结构研究课题组.铁路信息资源共享模型设计报告[R] .北京:北方交通大学,20 01 .
37
第3 期 鲁 威等:铁路共享信息搜索引擎的设计 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值