全文信息检索引擎框架系统设计与实现

来源 :现代经济信息 | 被引量 : 0次 | 上传用户:www0908
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文通过对基于java的全文信息检索引擎框架系统的研究,详细分析了信息检索、索引和搜索原理等核心技术。在此基础上本文还对系统的接口以及扩展性进行了介绍。以方便在目标系统中实现全文检索的功能,或者以此为基础建立起完整的全文检索引擎。
  关键词:信息检索;搜索引擎;索引
  中图分类号:G252.7文献标识码:A 文章编号:1001-828X(2011)12-0269-01
  
  
  一、国内外现状及其分析
  在过去的20年中,信息检索领域得到了不断的发展和壮大。现在,有关信息检索的研究包括建模、文献分类和归类、系统构建、用户界面、数据可视化、信息过滤和查询语言等。虽然信息检索正在不断成熟,但是WEB的设计、定义、基本的数据模型并不能满足于人们对信息检索的需求,因此基于java的全文信息检索引擎框架系统的设计与开发的研究势在必行。
  二、系统设计
  1.设计思想和原则
  (1)充分利用现有工作基础和成果,进行改进、提升和整合,避免重复建设。(2)模块之间关系尽量做到高内聚低耦合,通过定义一系列的接口和抽象类提高系统的可扩展性。(3)代码编写规范化,配有一定的注释,保证代码的重用性、可读性,可以进行快速的二次开发。
  2.接口设计
  本系统外部提供了简单的建立索引和搜索的API,但是内部的机制却是非常复杂的,通过调用这些API用户可以实现为文件建立索引并进行简单搜索的功能。系统主要的建立索引的API如下所示。
  (1)FileIndexer:索引操作的入口。该类的Index(File)方法递归遍历文件系统目录中的并同时调用相应的解析器索引其中所有的文件。(2)Properties:该类将文件的扩展名映射到能够解析以这些扩展名为后缀的文件的DocumentHandler实现类上。(3)Analyzer:系统的文本分析器。本系统运用了其子类IK_CAnalyzer进行文本解析。
  3.索引结构设计
  本系统中最基础的概念是索引(index)、文档(document)、域(field)和项(term),索引包含了一个文档的序列。
  (1)文档是一些域的序列。(2)域是一些项的序列。(3)项就是一个字串。
  域的文本可能以逐字的非倒排的方式存储在索引中。而倒排过的域称为被索引过了。域也可能同时被存储和被索引。域的文本可能被分解许多项目而被索引,或者被用作一个项目进行索引。
  FileIndexer类的Index(File file)方法递归遍历文件系统目录并同时调用相应的解析器索引其中所有的文件。
  4.部分程序设计代码
  本框架系统并不关心数据的来源,格式,甚至文件使用什么自然语言都没有关系,只要可以把它转换成文本格式。目前系统只能索引和搜索MSWord、PDF、纯文本文件、HTML格式的文件,随着框架的进一步丰富,将会有更多格式的文件可以被本系统索引。具体的建立索引和搜索的过程如下所示。
  public static void main(String[] args)throws Exception{
  if(args.length!=3)
  {System.err.println
  ("USAGE:java" FileIndexer.class.getName()
   "-propertiesFile" "-fileToBeIndexed" " -indexFileSaved");
  System.exit(0);
  }
  Properties prop = new Properties();
  prop.load(new
  FileInputStream(args[0]));
  fileIndexer.indexBuilder.setMaxFieldLength(2048);
  long start = System.currentTimeMillis();
  fileIndexer.index(file);
  fileIndexer.close();
  long end = System.currentTimeMillis();
  System.out.println(end-start);
  }
  上述建立索引和搜索過程应用的是FileIndexer框架,这个框架存在一个很明显的缺陷:它基于文件扩展名是正确的前提之上,并且要求所有的文件都必须带有扩展名。
  本文件的文件扩展名总是.txt,而不会是其他的扩张名;有假设MS Word文档文件扩展名一定为.doc等等。本系统包含了能处理如下类型输入文件的几个解析器:
  (1)HTML、HTM;(2)PDF;(3)MS Word;(4)纯文本文件.txt。
  所以如果遇到了现有的框架不能处理的文件类型,而你又需要对此类型的文件进行索引从而使之可以被搜索时,这时该去扩展这个框架。为了更准确地进行框架的扩展操作,请遵循以下的几个步骤:
  (1)编写一个用于解析目标文件类型的解析器,并实现DocumentHandler接口。(2)在handler.properties文件中添加你的解析器类,将此类映射到对应的文件扩展名上。(3)用上例的所示的方法运行FileIndexer程序。
  三、系统测试
  软件测试是一项非常重要的工作。它在软件的整个生存期中占据重要的位置,对软件的运行具有极其重要的意义。
  (1)测试用例一:
  索引文件:Lucene:基于Java的全文检索引擎简介.htm。
  文件大小:52KB。
  提取索引项(Term)个数:401。
  所用时间:1094milliseconds。
  (2)测试用例二:
  索引文件:Lucene:my_search.txt。
  文件大小:5KB。
  提取索引项(Term)个数:252。
  所用时间:853milliseconds。
  四、总结
  由于时间仓促,在这次程序设计的过程中,本软件还有不完善的地方,这有待笔者以后继续完善,恳请各位同行提出批评改进意见。
  
  参考文献:
  [1]谭浩强.C程序设计(第二版)[M].清华大学出版社,1999:298-308.
  [2]汪晓平,俞俊,李功.精通java网络编程[M].清华大学出版社,2005:15-93.
  [3]马少平,朱小燕.人工智能[M].清华大学出版社,2006:77-122.
其他文献
2013年3月,一组以“暴走漫画”风格反映“地铁长颈鹿”一族看别人玩手机的漫画作品在网上引发了共鸣,简单的线条将地铁车厢里人们的各种有趣心态勾勒了出来。漫画展现的是人挤
随着互联网的日益发展,网络已成为我们生活中必不可少的一部分,网络传播在信息时代的重要性日益凸显出来。在线即时通讯工具的覆盖面的不断扩大,网络也成为了人与人之间沟通
摘要:本研究发现,不少大学毕业生由于缺乏科学的择业观和清晰的就业规划,过度追求用人单位所提供的发展平台和物质待遇,以及用人单位存在的招聘工作不规范、信息不透明的问题是导致大学毕业生入职前毁约的重要原因,因此本研究在此基础上从企业的角度提出了五条降低大学毕业生入职毁约现象的相关建议和对策。  关键词:大学毕业生;毁约原因;大学生就业  中图分类号:G455文献标识码:A 文章编号:1001-828X
电信全业务运营要求企业必须具备一体化的运营能力,才能满足移动互联网时代现代信息服务的发展要求。
祖国医学认为:精、气、神乃人体之“三宝”,不可损也,损之则伤身.精充、气足、神全是人体健康长寿的标志;精亏、气虚、神弱为疾病与衰老之原因.为此,重视保养精、气、神这“
摘要:随着我国金融贸易的发展,金融监管体制也相应调整变化,面对中国加入WTO后,经济全球化对我国金融产生很大的影响,合理科学的制定金融监管体制是非常重要的,本文主要论述了我国金融监管体制的发展。  关键词:金融监管;体制;经济  中图分类号:F830文献标识码:A 文章编号:1001-828X(2011)12-0260-01    金融监管是指政府通过特定的机构(如中央银行)对金融交易行为主体进行
摘要:科学技术的进步对经济的发展有巨大的作用,江西省要在中部地区崛起,提高高校科技成果对经济的贡献,使科学技术转化为生产力促进经济发展具有重要意义。通过分析江西省高校科技的投入产出和江西省高校科技贡献率的情况,对提高江西省高校科技贡献率提出对策思考。  关键词:江西省高校;科技贡献率;高校科技贡献率  中图分类号:F204文献标识码:A 文章编号:1001-828X(2011)12-0261-01
基于集团管控多元化发展模式下各产业质量管理水平参差不齐的现状,为企业经营能力的提升奠定质量方面的管理基础,本文结合企业自身经营实践持续推进质量管理创新,在质量管理
名校的身影,曾牵动着多少学子最深情的目光;名校的光环,曾照亮了多少学子最执着的渴望;踽踽独行的求学路上,举头望名校,多苦多累也不以为然;考上名校,成了一辈子的光荣;与名校擦身而过
摘要:本文通过对女职工特殊劳动保护的原因和具体内容,以及目前存在的问题的描述和分析,对工会如何维护女职工的特殊劳动提出粗浅的看法,呼吁各级政府乃至全社会的重视女职工的特殊劳动保护问题,进一步加强女工的劳动保护工作。  关键词:企业工会;女工;劳动保护  中图分类号:D412.6文献标识码:A 文章编号:1001-828X(2011)12-0265-01      随着改革开放的不断深入和社会主义市