用JSP调用Lucene包来实现全文检索

来源 :电脑学习 | 被引量 : 0次 | 上传用户:wangguoxiandinana
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:介绍了实现全文检索的三个组件(Tomcat、JSP、Lucene)对应全文检索系统结构.给出了具体实现的运作流程和主要部分的核心代码及相应说明。
  关键词:Tomcat JSP Lucene 运作流程 核心代码 说明
  中图分类号 TP311.56
  文献标识码 B 文章编号:1002-2422(2007)03-0029-02
  
  1 Tomcat JSP Lvcene
  
  1.1 Tomcat的Web服务器
  Web服务器是在网络中为实现信息发布、资料查询、数据处理等诸多应用搭建基本平台的服务器。Tomcat Server是根据Servlet和JSP规范进行执行的,是一个十分有用的网络应用开发服务平台。它的下载、安装、使用见网站:http://Aomcat.apache.org/
  
  1.2 JSP(Java Server Pages)
  JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。
  在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。
  
  1.3 Lucene
  Lucene是Apache的开源项目,是用Java写的全文索引引擎工具包。它提供了许多简单实用的API,用这些API,就可以方便的嵌入到各种应用中,对任何基于文本的数据进行全文检索。
  Lucene是用Java写的,它的运行、调试都需要有JavaSDK。Lucene的下载、安装、使用见网站:http://Aucene.apache.org/
  
  2 全文检索的实现
  
  2.1 全文检索系统的结构
  全文检索系统是按照全文检索理论建立起来的用于提供全文检索服务的软件系统。一般来说,全文检索需要具备建立索引和提供查询的基本功能,此外现代的全文检索系统还需要具有方便的用户接口、面向www的开发接口、二次应用开发接口等等。结构上,全文检索系统核心具有索引引擎、查询引擎、文本分析引擎、对外接口等等,加上各种外围应用系统等共同构成了全文检索系统。当然,全文检索系统中最为关键的部分是全文检索引擎,各种应用程序都需要建立在这个引擎之上。
  (1)核心部分 检索引擎:在java平台上,便用Lucene的API编辑、调试好全文检索程序*.java;
  (2)开发接口:编辑*.html文件,加入调试好的全文检索程序*.java和相应的JSP标记(tag);
  (3)Web应用程序:Tomcat提供网络应用开发服务平台,在它的基础上执行*.jsp,最后的程序以*.jsp的形式出现,执行时先启动Tomcat,设定好端口,在地址栏输入相应的*.jsp。
  
  2.2 全文检索实现主要部分的核心代码和相应分析
  一个全文检索系统的核心部分是建立索引,形成索引文件,然后依据客户输入的索引关键字(词),再查找索引文件,形成对应,最后按客户的要求返回检索结果,好的检索程序应提供良好界面便于客户查看检索结果。
  下面附具体实现对应各主要部分的核心代码和相应分析。
  2.2.1 建立索引
  程序中所用类别:
  page import=“java.io.*,org.apache.lucene.analysis.*,org.apache.lucene.document.*, org.apache.lucene.index.*,org.apache.lucene.searchh.*,org.apache.lucene.queryPamer.*,org.apoche.lucene.analysis.cn.ChineseAnalyzer, org.apache.lucene.store.Directery, org.apache.lucene.store.FSDirectory
  (1)建索引的子程序
  public void indexDocs(IndexWriter writer,File fileFile)throwsIOException{
  ∥do not try to index files that cannot be read
  if(fihFile.canRead())
  }
  if(fileFile.isDirectory()){
  String[] files=fileFile.fist();
  ∥an IO error could occur
  if(files!=null)}
  for(int i=O;i<files.length;i ){
  递归调用,用于对于文件夹中文件的添加
  indexDocs(writer,new File(Filefile,fries[i]));}
  //Document表示一条被索引的记录,对应本程序即为一个文件,doc.add()语句应用不同的模式加入文件的不同对象(文件名、所在文件夹、文件内容)
  Document doc=new Document();
  String fdeName=fdeFile.getName();
  String dirName=fileFile.getPath()。subetring(15);
  doc.add(new Field(“flleName”,fdeName,Field.Store.YES.Field.
  Index.UN_TOKENIZED));
  doe.add(new Field(“directoz7”,dirName,Field.Store.YES,Field.
  Index.UN_TOKENIZED):
   doc.add(new Field(“content”,new lnputStreamReader(new Fileln-putStream(fdeFile),“gb2312”)));
  //IndexWriter专门用于索引文件的写入操作;根据开始部分定义IndexWfiter writer,writer为IndexWriter对象writer.addDocumem(doc);
  (2)索引建立的主体部分(含对以上子程序的调用)
  //StandandAnalyzer是一个标准分析器,用于对要索引的内容进行切分处理,应用对象为英文,全文检索程序需要对网站内大量数据进行检索,应用对象为中文.ChineseAnalyzer为中文分析器.
  Analyzer analyzer=new ChineseAnalyzer();
  IndexWriter iwriter=new IndexWriter(“webapps/search/testindex”,analyzer,true);
  iwriter.setMaxFieldLength(25000);
  //对子程序的调用
  indexDocs(iwriter,new File(“webapps/search/files”));
其他文献
【摘要】初中阶段是学生学习的关键阶段,这个阶段学好物理学科意义相当深远。目前初中物理教学主要存在教学方式不新颖和教学过程探究性不足等问题。为优化初中物理课堂教学,提高课堂教学效率,应激发学生学习兴趣,提高学生学习自主性;分组探究,引导学生自主学习;因材施教,使各层次学生学有所得。  【关键词】课堂教学;优化研究;初中物理  当前背景下物理知识的重要性越来越突出,人们对物理教学越来越重视,这无疑给物
在低年级《道德与法治》教材中,绘本是对知识的重要呈现方式,图文并茂。它符合低年级学生直观形象的思维方式和认知规律,深受学生喜爱。绘本元素的融入,不仅能够大大减少学生因识字量少引起的阅读理解困难,而且激发了学生的学习兴趣。因此,在道德与法治教学中,我们要把绘本故事作为重要的教学资源,并加以综合利用,才能有效提高教学质量,充分培养学生良好的品德与行为习惯。  一、创设情境,激发兴趣  托尔斯泰曾经说过
【摘要】在小学数学课堂上,教师应巧妙利用现代化信息技术,将教学内容与信息技术进行有效地融合,激发学生的课堂兴趣,从而达到课堂效率的目的。  【关键词】小学数学;信息技术;兴趣;融合  苏霍姆林斯基说过:“教师在教学中如果不想方设法使学生产生情绪高昂和智力振奋的内心状态,而是不动情感的脑力劳动,就会带来疲倦。”年龄较小的孩子在认知新事物时往往对于直观明了的事物容易掌握,对于抽象的事物不易掌握。然而,
【摘要】课堂教学的生成资源往往表现为不确定性、突发性。小学生对世界充满着好奇,对课文知识、老师的讲解、学生之间的讨论等,有着如“十万个为什么”的求知渴望,面对种种不确定性的生成资源,教师及时捕捉加以灵巧利用,能让教学如虎添翼、锦上添花,学生乐学,教师乐教,提高教学效率。基于此,本文对如何巧用生成资源,让语文课堂充满活力作了探讨。  【关键词】资源;细节;捕捉;思路;拓展  教师的每一节课堂,都因有
摘 要 简单介绍了监视控制与数据采集系统(SCADA)和远程过程调用(RPC)技术,详细分析了利用RPC技术,在VC6.0下实现SCADA的方法和过程。  关键词 监视控制与数据采集 远程过程调用 电力调度自动化 VC  中图分类号 TP273 .5 文献标识码 A 文章编号:1002-2422(2006)05—0007—02
摘 要 介绍了利用Excel调用其他数据库中的数据的基本方法、步骤,即可以利用Excel下的VBA编程来实现对原有数据的处理,来扩展现有程序的功能,避免了重復开发造成的浪费。  关键词 Excel VBA 数据库  中图分类号 TP317.3  文献标识码 B 文章编号:1002—2422(2006)06—0064—02
【摘要】在以人为本的教育理念下,尊重学习者,发挥学习者潜能,培养具有健全人格为终极目标。在小学语文教学中,关注学习者的情感共鸣,让孩子充满成长快乐的体验显得十分重要。本文以情景教学为研究对象,依托小学语文的课程,谈谈小学语文课堂情景教学的方法,让学习者深入文本的处境中,品味文本的感情,学习者在主动体验中快乐地获得成长。  【关键词】入情入境;有效方法  入情入境就是学生在老师的引导下,学生置身生动
一、单元分析  《秋天的雨》是部编教材小学语文三年级第五册第二单元的一篇课文,本单元以“金秋时节”为主题编排了三首古诗和三篇课文,从不同角度展示了秋天别样的风景。本单元语文要素是“运用多种方法理解难懂的词语”。  二、文本解读  《秋天的雨》是一篇洋溢着诗情画意和童真童趣的散文,从多角度描绘出一个美丽、丰收、欢乐的秋天,要引导学生读出秋天的韵味,读出秋天的美好。  三、学情分析  由于一、二年级学
同学们,高考脚步越来越近,在最后的冲刺阶段,我们在复习过程中会有哪些困惑,又应该怎么做才能让复习的效率达到最高呢?将零散知识整合,构建知识体系,查漏补缺,是冲刺阶段复习备考的重要任务之一。系统化的复习在高三将近一年的复习中,已经进行了至少两轮,但仍然存在一些知识的漏洞,或是对之前复习内容中的一些重点内容和易错点出现了遗忘。怎么才能有效发现这些漏洞在哪里呢?我们可以通过以下几点来做:   1.建构
【摘要】在当前新课程改革以及素质教育的大背景下,初中英语课堂教学不仅仅要充分体现其有效性,还应该在课外阅读作业设计当中呈现实效性。但是,从当前的情况来看,初中英语课外阅读作业的设计形式相对比较枯燥、单一,缺乏一定的新颖性,学生的兴趣并不是很高。因此,如何能够紧密融合课堂教学当中的实际内容,为学生设计合理的、新颖的课外阅读作业,提升作业质量是初中英语教师教育教学工作开展当中极为重要的内容之一。基于此