Lucene论述

来源 :大众商务·下半月 | 被引量 : 0次 | 上传用户:nanguo345
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。
  【关键词】搜索引擎;Lucene;全文搜索
  中图分类号:TP18 文献标识码:A 文章编号:1009-8283(2009)03-0107-01
  
  这是一个建立文件索引的例子
  public void doIndex () throws IOException
  {
  Date date1 = new Date();?
  IndexWriter writer = new IndexWriter("c:\\\\index",new StandardAnalyzer(),true);
  File file = new File("c:\\\\file");
  /**
  * 例子主要是将C:\\\\file目录下的文件的内容进行建立索引,将文件路径作为搜索内容的附属.
  */
  if(file.isDirectory())
  {
  String[]fileList = file.list();
  for (int i = 0;i < fileList.length;i++)
  {
  Document doc = new Document();
  File f = new File(file,
  fileList[i]);
  Reader reader = new BufferedReader(new FileReader(f));
  doc.add(new Field("file",reader));//为doument添加field
  doc.add(new Field("path",f.getAbsolutePath(),Field.Store.YES,Field.Index.NO));
  writer.addDocument(doc);
  }
  }
  writer.close();//这一步是必须的,只有这样数据才会被写入索引的目录里
  Date date2 = new Date();
  System.out.println("用时"+(date2.getTime()-date1.getTime())+"毫秒");
  }
  分析
  为了对文档进行索引,Lucene 提供了五个基础的类,他们分别是 Document,Field,IndexWriter,Analyzer,Directory。下面我们分别介绍一下这五个类的用途:
  Document
  Document 是用来描述文档的,这里的文档可以指一个 HTML 页面,一封电子邮件,或者是一个文本文件。一个 Document 对象由多个 Field 对象组成的。可以把一个 Document 对象想象成数据库中的一个记录,而每个 Field 对象就是记录的一个字段。
  Field
  Field 对象是用来描述一个文档的某个属性的,比如一封电子邮件的标题和内容可以用两个 Field 对象分别描述。
  Analyzer
  在一个文档被索引之前,首先需要对文档内容进行分词处理,这部分工作就是由 Analyzer 来做的。Analyzer 类是一个抽象类,它有多个实现。针对不同的语言和应用需要选择适合的 Analyzer。Analyzer 把分词后的内容交给 IndexWriter 来建立索引。
  IndexWriter
  IndexWriter 是 Lucene 用来创建索引的一个核心的类,他的作用是把一个个的 Document 对象加到索引中来。
  Directory
  这个类代表了 Lucene 的索引的存储的位置,这是一个抽象类,它目前有两个实现,第一个是 FSDirectory,它表示一个存储在文件系统中的索引的位置。第二个是 RAMDirectory,它表示一个存储在内存当中的索引的位置。
  其实从上面的例子就可以看出建立索引就用到Document,IndexWriter,Field。
  最简单的步骤就是:
  首先分别new 一个Document,IndexWriter,Field
  然后用Doument.add()方法加入Field,
  其次用IndexWrtier.addDocument()方法加入Document。
  最后调用一下IndexWriter.close()方法关闭输入索引,这一步非常的重要只有调用这个方法索引才会被写入索引的目录里,而这是被很多初学的人所忽略的。
  一个通过索引来全文检索的例子
  public void doSearch() throws IOException,ParseException
  {
  IndexSearcher indexSearcher = new IndexSearcher("c:\\\\index");
  QueryParser queryParser = new QueryParser("file",//这是一个分词器
  new StandardAnalyzer());
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  Query query = queryParser.parse(br.readLine());
  Hits hits = indexSearcher.search(query);
  Document doc = null;
  System.out.print("正搜索................");
  for (int i = 0;i < hits.length();i++)
  {
  doc = hits.doc(i);
  System.out.println("内容是:"+doc.get("file"));
  System.out.println("文件的路径是:" + doc.get("path"));
  }
  }
  利用Lucene进行搜索就像建立索引一样也是非常方便的。在上面一部分中,我们已经为一个目录下的文本文档建立好了索引,现在我们就要在这个索引上进行搜索以找到包含某个关键词或短语的文档。
其他文献
【摘 要】 本文运用Cornish-Fisher与标准t(d)分布拟合法,选取上证综合指数的1210个样本数据与深圳成份指数的1210个样本数据进行实证分析,结果表明深圳成份指数的VaR绝对值大于上证综合指数,深圳成份指数的风险较大  【关键词】VaR;标准t(d)分布拟合法; Cornish-Fisher方法;  中图分类号:F830  文献标识码:A  文章编号:1009-8283(2009)
期刊
【摘 要】JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。分布式计算环境通常使用命名和目录服务来获取共享的组件和资源。命名和目录服务将名称与位置、服务、信息和资源关联起来。命名服务提供名称—对象的映射。目录服务提供有关对象的信息,并提供定位这
期刊
【摘 要】本文从传媒广告现状、传媒广告经营等方面来探讨中国传媒广告的发展方向,希望可以就此问题引发每一位广告人的深思,为中国广告事业的发展作出贡献。  【关键词】传媒广告;经营  中图分类号:TP391 文献标识码:A 文章编号:1009-8283(2009)03-0040-01    先来看一则旧新闻:2004年11月1日,由上海、北京、广州三大传媒集团联手打造的全国性财经商业时报《第一财经时报
期刊
【摘 要】环境标识是近些年来欧美等发达国家在国际贸易中所构筑的一道新“门槛”。国际上对环境标志存在批评和支持两种意见.一般围绕环境标志的主观性、透明度 非关税壁垒、分析方法存在缺陷等。该文章主要从WTO规则的视角来分析环境标志对国际贸易影响问题。探讨我国作为WTO的成员方如何建设环境标志制度,推动环境标志认证的新发展。在多边贸易体制中,既要极力维护国家的贸易安全,也要积极防止和应对环境标志成为新的
期刊
【摘 要】运用Cobb-Douglas函数,通过对1998年和2006年长江三角洲16个城市的经济增长速度的计量模型的建立,以及假设检验,得出以下结论:1999年高校扩招以来,地方的教育对当地经济增长率贡献不大。  【关键词】Cobb-Douglas函数;产出增长;教育检验  中图分类号:G642.0 文献标识码:A 文章编号:1009-8283(2009)03-0115-02    1 介绍  
期刊
【摘 要】初三思想政治课的一条生命线是理论联系实际。本文介绍的是我个人在工作中的心得和体会。  【关键词】政治课;G633;教学;社会热点  中图分类号:TP391 文献标识码:A 文章编号:1009-8283(2009)03-0160-01    思想政治课与当前的时事政治和整个社会的热门话题及其热点想结合是理论联系实际的一个重要方面,它能帮助政治教师提高教学水平,丰富自己的知识,加强业务教学能
期刊
【摘 要】源自于流通领域的业态的概念引入到旅游领域后发挥了极大的推动作用,本文在分析了旅游业态的本身特点的基础之上,进而结合湖南洪江古商城为例,提出了进行系统化业态管理的洪江景区殛待推进的几个路径。  【关键词】旅游业态;洪江;会馆文化  中图分类号:F590.6 文献标识码:A 文章编号:1009-8283(2009)03-0051-01    近年来,旅游规划和管理中频频引进了业态一词,使得业
期刊
【摘 要】企业推进业务流程优化时面临着不同实施方法的选择。根据企业的环境变量,采取合适的流程优化实施方法将可以避免给企业运作带来更大的风险。基于PDCA循环的实施方法是一种自底向上的循序渐进式的流程优化方法,该方法实现对子流程的阶段性的改进,进而带来整体流程的的优化,最终实现企业战略目标。  【关键词】业务流程优化;PDCA循环;持续改进  中图分类号:F830 文献标识码:A 文章编号:1009
期刊
【摘 要】高等教育正面临着激烈的国际国内竞争,我国高校借鉴CIS塑造品牌形象,提升社会声誉是时代和社会发展的客观要求,也是我国高校自身发展的需要。本文通过借鉴企业CIS内涵,对我国高校打造自身品牌、导入CIS战略的内容及原则进行了研究。  【关键词】 高校;CIS;品牌  中图分类号:G643.07 文献标识码:A 文章编号:1009-8283(2009)03-0134-02    我国高等教育的
期刊
【摘 要】在开发新型农村合作医疗软件过程中,一个需要解决的问题是如何实现医院管理信息系统(HIS)和新农合软件的数据接口。本文介绍了一种基于PowerBuilder编程语言的接口方法,该方法能够自动或者手动把指定的数据从HIS数据库复制到新农合数据库,从而实现数据共享。  【关键词】HIS;新农合;PowerBuilder  中图分类号:TP18 文献标识码:A 文章编号:1009-8283(20
期刊