Advertisement

Lucene 2.9.1 完整示例及开发文档

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
《Lucene 2.9.1 完整示例及开发文档》为开发者提供了详尽的API参考和代码实例,帮助深入理解并高效使用Lucene进行全文搜索与索引构建。 以下是用于创建索引的示例代码: ```java public static void createIndex(File src, File destDir) { Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT); // 创建一个语法分析器 IndexWriter iwriter = null; Directory directory = null; try { directory = FSDirectory.open(destDir); // 将索引文件存储到磁盘目录 iwriter = new IndexWriter(directory, analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED); Document doc = new Document(); // 创建一个Document对象 doc.add(new Field(path, src.getCanonicalPath(), Field.Store.YES, Field.Index.NOT_ANALYZED)); StringBuilder sb = new StringBuilder(); BufferedReader br = new BufferedReader(new FileReader(src)); for(String str; (str = br.readLine()) != null;) { sb.append(str).append(System.getProperty(line.separator)); } doc.add(new Field(contents, sb.toString(), Field.Store.YES, Field.Index.ANALYZED)); iwriter.addDocument(doc); // 将Document存放到IndexWriter中 iwriter.optimize(); // 对索引进行优化 } catch (IOException e) { e.printStackTrace(); } finally { if (iwriter != null) { try { iwriter.close(); // 关闭IndexWriter时,才把内存中的数据写到文件 } catch (IOException e) { e.printStackTrace(); } } if (directory != null) { try { directory.close(); // 关闭索引存放目录 } catch (IOException e) { e.printStackTrace(); } } } } ``` 以下是用于查询索引的示例代码: ```java public static void searcher(String keyword, File indexDir) { IndexSearcher isearcher = null; Directory directory = null; try{ Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT); directory = FSDirectory.open(indexDir); QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, contents, analyzer); Query query = parser.parse(keyword); // 获取查询对象 isearcher = new IndexSearcher(directory, true); // 创建索引搜索器 TopDocs ts = isearcher.search(query, null, 100); int totalHits = ts.totalHits; System.out.println(命中数: + totalHits); ScoreDoc[] hits = ts.scoreDocs; for (int i = 0; i < hits.length; i++) { Document hitDoc = isearcher.doc(hits[i].doc); System.out.println(hitDoc.getField(contents).stringValue()); } } catch (IOException | ParseException e) { e.printStackTrace(); } finally { if (isearcher != null) { try { isearcher.close(); // 关闭搜索器 } catch (IOException e) { e.printStackTrace(); } } if (directory != null) { try { directory.close(); //关闭索引存放目录 } catch (IOException e) { e.printStackTrace(); } } } } ``` 删除Lucene索引的方法可以通过`IndexWriter.deleteDocuments(Term term)`或使用`IndexReader.deleteDocuments(Term term)`来实现。这些方法会从指定的Term中删除所有相关的Document。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Lucene 2.9.1
    优质
    《Lucene 2.9.1 完整示例及开发文档》为开发者提供了详尽的API参考和代码实例,帮助深入理解并高效使用Lucene进行全文搜索与索引构建。 以下是用于创建索引的示例代码: ```java public static void createIndex(File src, File destDir) { Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT); // 创建一个语法分析器 IndexWriter iwriter = null; Directory directory = null; try { directory = FSDirectory.open(destDir); // 将索引文件存储到磁盘目录 iwriter = new IndexWriter(directory, analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED); Document doc = new Document(); // 创建一个Document对象 doc.add(new Field(path, src.getCanonicalPath(), Field.Store.YES, Field.Index.NOT_ANALYZED)); StringBuilder sb = new StringBuilder(); BufferedReader br = new BufferedReader(new FileReader(src)); for(String str; (str = br.readLine()) != null;) { sb.append(str).append(System.getProperty(line.separator)); } doc.add(new Field(contents, sb.toString(), Field.Store.YES, Field.Index.ANALYZED)); iwriter.addDocument(doc); // 将Document存放到IndexWriter中 iwriter.optimize(); // 对索引进行优化 } catch (IOException e) { e.printStackTrace(); } finally { if (iwriter != null) { try { iwriter.close(); // 关闭IndexWriter时,才把内存中的数据写到文件 } catch (IOException e) { e.printStackTrace(); } } if (directory != null) { try { directory.close(); // 关闭索引存放目录 } catch (IOException e) { e.printStackTrace(); } } } } ``` 以下是用于查询索引的示例代码: ```java public static void searcher(String keyword, File indexDir) { IndexSearcher isearcher = null; Directory directory = null; try{ Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT); directory = FSDirectory.open(indexDir); QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, contents, analyzer); Query query = parser.parse(keyword); // 获取查询对象 isearcher = new IndexSearcher(directory, true); // 创建索引搜索器 TopDocs ts = isearcher.search(query, null, 100); int totalHits = ts.totalHits; System.out.println(命中数: + totalHits); ScoreDoc[] hits = ts.scoreDocs; for (int i = 0; i < hits.length; i++) { Document hitDoc = isearcher.doc(hits[i].doc); System.out.println(hitDoc.getField(contents).stringValue()); } } catch (IOException | ParseException e) { e.printStackTrace(); } finally { if (isearcher != null) { try { isearcher.close(); // 关闭搜索器 } catch (IOException e) { e.printStackTrace(); } } if (directory != null) { try { directory.close(); //关闭索引存放目录 } catch (IOException e) { e.printStackTrace(); } } } } ``` 删除Lucene索引的方法可以通过`IndexWriter.deleteDocuments(Term term)`或使用`IndexReader.deleteDocuments(Term term)`来实现。这些方法会从指定的Term中删除所有相关的Document。
  • 软件版)
    优质
    《软件开发文档示例(完整版)》提供了详尽的软件项目开发过程中的各类文档模板和编写指南,涵盖需求分析、设计、编码及测试等阶段,适用于软件工程师和技术经理参考使用。 软件开发文档范例包括测试分析报告、测试计划、程序维护手册、概要设计说明书、可行性报告、详细设计说明书、项目开发计划、需求分析说明书、用户操作手册以及总结性报告,全部为WORD文档格式。
  • MSChart安装包
    优质
    MSChart 完整安装包及示例文档提供Microsoft Chart控件的全面安装解决方案和详细的使用案例参考,帮助开发者轻松集成图表功能。 安装顺序如下:(1)dotnetfx35setup.exe (2)MSChart_VisualStudioAddOn.exe (3)MSChartLP_chs.exe (4)MSChart.exe 安装完成后,会有一个WinSamples文件夹,其中包含mschart的完整使用方法示例,可供学习。
  • 软件工程
    优质
    《软件工程完整案例开发文档》是一份详尽指导软件项目实施的手册,涵盖了从需求分析到测试部署的所有阶段,为开发者提供实践参考。 软件工程开发的详细过程及一个完整案例:面向对象学籍管理信息系统的开发流程与文档编写详尽、图片丰富。
  • MT4 API
    优质
    本手册详尽介绍了如何使用MT4 API进行编程和自动化交易策略开发,涵盖接口功能、数据获取及订单执行等关键内容。 MT4平台开发文档包括DataFeedAPI、ManagerAPI和ReportAPI的相关内容及示例代码,并提供了所有的API接口与开发文档资料,还包括mtmanapi.dll和mtmanapi64.dll文件。
  • C#(Windows Forms)
    优质
    这份文档是针对使用C#语言进行Windows Forms应用程序开发的全面指南,涵盖了从基础到高级的所有方面。 这段内容涵盖了C#窗体开发的各个方面,包括对ADO.NET中的五个类进行详细解读以及DataGridView控件的常用用法,并且包含了经典的数据库操作语句。还有很多其他的内容,虽然具体细节难以一一列举出来!这是经过我长时间整理和归纳的结果,非常有价值的信息,请务必不要错过哦!
  • USRP-B210LabVIEW-FPGA手册
    优质
    本资源包含USRP-B210详尽操作指南与LabVIEW-FPGA编程手册,涵盖设备配置、通信协议及高级FPGA项目开发技巧,适合科研人员和工程技术人员参考学习。 USRP-B210全套文档资料包括:USRP B210硬件原理图、AD9361学习总结、Spartan-6芯片资料和LabVIEW-FPGA开发指南。
  • TMS320F28335代码集
    优质
    本资源提供了一套基于TI TMS320F28335微控制器的完整开发示例代码,涵盖驱动程序、外设配置及应用层实现等,适合初学者快速上手和深入学习。 TMS320F28335全套开发例程提供了完整的代码示例和教程,帮助开发者快速上手并掌握该微控制器的使用方法。这些资源涵盖了从基础设置到高级应用的各种场景,旨在为用户提供全面的技术支持和实践指导。
  • Chrome插件: Demo
    优质
    本示例提供一个完整的Chrome插件开发教程和代码实现,帮助开发者快速入门并掌握插件的基本架构与功能定制。 Chrome插件开发完整示例包括一个popup页面!通过background打开并调用background页中的JavaScript方法来获取和设置标题(用于验证background的生命周期和单实例特性)。演示窗口操作,如新窗口打开百度、执行简单动画效果、最大化当前窗口、最小化当前窗口及关闭所有标签。展示标签操作功能,包括在新标签中打开百度、获取当前标签页面ID以及切换到第一个标签页。 popup与content-script交互示例:发送短消息至content-script,并建立长连接以持续通信;DOM交互演示修改网页背景色(通过executeScript实现)和调整字体大小(使用sendMessage方法)。国际化功能展示,查看插件列表描述的更新变化。其他特性包括显示badge、隐藏badge及桌面通知等。 额外示例还包括检测百度广告右键菜单项、omnibox操作以及图片尺寸演示;同时涵盖devtools面板与sidebar组件的功能介绍和应用实例。
  • 模板.zip
    优质
    这是一个包含完整版开发文档模板的资源包,适用于软件项目的规划、设计和实施阶段。包含了项目管理、编码规范等多方面的指导内容。 在软件开发过程中需要编写的文档模板种类繁多,有需求的人可以下载并参考这些模板,这对工作会很有帮助。