ISSN1009-3044第7卷第10期(2011年4月)电脑知识与技术ComputerKnowledgeandTechnologyVol.7,No.10,April2011,pp.2293-2294,2317
E-mail:3710167@qq.com.cn
ComputerKnowledgeandTechnology电脑知识与技术http://www.dnzs.net.cn
Tel:+86-551-56909635690964
基于Flex与J2EE垂直
搜索引擎的
设计与实现
文小燕,马光思
(西安建筑科技大学信息与控制工程,陕西西安710055)
摘要:文章结合影响股票价格的技术指标、股票理论、预测股价变量等因素,运用Lucene、Heritrix技术实现股票搜索引擎,重点讨论了Flex数据交互、Spring与Flex整合、Lucene索引建立、
网络爬虫抓取信息遵守的规则,给出了对信息源不能直接抓取的解决办法。关键词:Flex;垂直搜索;Lucene;BlazeDS;股票中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)10-2293-02
DesignandImplementofVerticalSearchEngineBasedontheFlexandJ2EEWENXiao-yan,MAGuang-si(SchoolofInfor.andControlEng.,Xi'anUniv.ofArchitectureandTech.,Xi'an710055,China)Abstract:Associatedwiththefactorsofaffectingstockpricessuchastechnicalindicators,stocktheory,forecastpricevariables,usingHeritrixandHeritrixtechnologyt
oachievestockverticalsearchengine.Meanwhile,thearticleprincipallydiscussestheFlexdatainteraction,integrationSpringandFlex,Luceneindexestablishing,complyingwiththerulestherulesof
webcrawlersgrabinginformation,givingthesolutiontoinformationsourcecannotdirectlygrabing.Key
words:flex;verticalsearch;lucene;BlazeDS;stock
股票投资是一项充满智慧和富有挑战性的活动,也是现代生活中最常见的风险投资活动。随着上市公司的不断增加,与股票相关的各类信息、分析
软件、分析技术也不断增加。除了市场内部因素,股价也受到突发事件[1],宏观
经济调控政策的影响。在考虑了股票理论、技术指标、预测股价变量等因素后,结合框架技术、网络爬虫、索引技术、页面设计和必要的编码完成了股票搜索引擎的实现。
1Flex与垂直搜索
Flex作为富Internet应用(RIA)时代的新技术代表[2],不仅拥有完美的后台数据服务技术如BlazeDS、LCDS(LiveCycleDataService)、ColdFusion等,且兼容性很好,不依赖操作
系统和浏览器,可以与现有主流框架Spring、Struts等结合。1.1Flex数据交互Flex提供了两种数据交互方式,分别为远程过程调用服务和消息服务。1)远程过程调用服务Flex应用
程序可以使用RPC(远程过程调用)组件访问BlazeDS提供的RPC服务。Flex包含三种类型的RPC组件HTTPService、WebService和RemoteObject。关于各个组件的使用可参见文献[3],本文中的股票搜索引擎使用了第三种RemoteObject组件方式实
现数据交互。
2)消息服务
消息服务器不仅能够应用在基于Flex技术开发的多个客户端之间,也能在Flex客户端与
Java客户端上使用,甚至与其他异构系统实现消息通讯。文献[4]就利用BlazeDS消息服务机制的推(Push)方式克服了AJAX技术不能有效解决拉(Pull)方式请求,实现了Web实时监控系统。
1.2Spring与Flex整合Flex技术本身与Java就有很强的关联性,它提供了一个基于Eclipse的集成开发环境和BlazeDS数据服务。2008年末,Spring
社区已经着手SpringBlazeDS整合的项目,为Java和Spring添加更好的Flex支持。以下简单地介绍实现Flex与Spring整合的步骤。
Step1设置服务端的BlazeDSJava工程以及Spring框架。Step2在BlazeDS中配置Spring的bean针对股票搜索引擎的bean文件,向Spring配置文件applicationContext.
xml中添加代码如下:
收稿日期:2011-02-12基金项目:陕西省教育厅专项科研项目(07JK306)作者简介:文小燕(1986-),女,宁夏彭阳县人,硕士研究生,主要研究领域为计算机软件与理论;马光思(1949-),男,陕西三原县人,教授,主要从事软件理论、信息安全等领域的教学与研究。
本栏目责任编辑:谢媛媛
软件设计开发
2293
ComputerKnowledgeandTechnology电脑知识与技术
第7卷第10期
(2011年4月)
Step3在Flex应用中使用Spring/BlazeDS的服务。配置好了applicationContext.xml文件后,就是在自己的Flex页面调用bean,远程访问代码如下:1.3垂直搜索引擎技术
垂直搜索引擎关注于信息的抓取和检索系统,与通用搜索引擎相比较其数据分析更加准确,涉及内容也更加专业。选用Heritrix爬虫技术,并在eclipse中配置Heritrix,也可以根据需求扩展Frontier和Extractor定制自己的Heritrix。
Lucene使用倒排面向单词的索引机制为关键字建立索引表[5]。然而Lucene并不能很好的支持中文分词,这就导致了Lucene
并不能很好的处理中文网页。常见的分词有中科院的ICTCLAS分词与JE分词。JE分词不但中文分词效果好,而且还有一个最大的优点就是提供了可以添加新词的API,本文实现的股票搜索引擎采用了addWord方法添加了股票名称到词库。
1.4信息源采集原则1)网站内的网页能够被网络爬虫抓取,即:网站对搜索引擎是友好的,没有使用反爬虫技术,没有屏蔽搜索引擎爬虫对网页的
抓取。这一原则保证了使用Heritrix或改造后的Heritrix能抓取到网页数据。
2)网站信息不是使用JavaScript动态生成的。这是由于web2.0方式普及和网站
新技术Ajax技术的使用,如必须使用爬虫则需模拟浏览器才能获取,不适合作为大规模搜索引擎的信息来源。
3)网站的页面结构不应当经常变化,最好是使用模板动态生成。这样有助于保
证提取数据的准确性。
2股票搜索引擎系统的实现
股票搜索引擎包括三部分:抓取系统、索引系统和搜索显示系统,如图1所示。
图1
搜索引擎的简单结构
1)抓取实现。网络爬虫程序负责从网上信息源抓取信息,综合考虑了搜索显示结果、抓取实现等问题,本文选择了东方财富网
的财务指标及新浪财经网的业绩预告作为信息源。抓取东方财富网的股票信息需在Heritrix中添加自己StockExtractor类设置来只抓取与股票财务指标有关的网页,部分代码如下:
if(line.contains("