`
freespace
  • 浏览: 179565 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

lucene 索引非txt文档 (pdf word rtf html xml)

阅读更多

搜索要首先要索引,索引的话最简单的方式是索引txt文件,上文已经介绍了。这里介绍一下一些其它格式的文档的索引,例如ms word ,pdf ,rtf等。

索引方法:就是先把各种文档先转化成纯文本再索引,所以关键在转换上。幸好java世界中有太多的开源工程,很多都可以拿来直接使用。下边分别介绍一下:
写在所有之前:下边所有介绍中的is参数都是inputStream,就是被索引的文件。
word文档:
把word文档转换成纯文本的开源工程可以使用:POI 或者TextMining
POI的使用方法:
 WordDocument wd = new WordDocument(is);
      StringWriter docTextWriter 
= new StringWriter();
      wd.writeAllText(
new PrintWriter(docTextWriter));
      docTextWriter.close();
      bodyText 
= docTextWriter.toString();
TextMining的使用方法更简单:
bodyText = new WordExtractor().extractText(is);

PDF文档:
转换PDF文档可以使用的类库是PDFbox
COSDocument cosDoc = null;
   PDFParser parser = new PDFParser(is);
    parser.parse();
cosDoc 
= parser.getDocument()
if (cosDoc.isEncrypted()) {
        DecryptDocument decryptor 
= new DecryptDocument(cosDoc);
        decryptor.decryptDocument(password);
 }
PDFTextStripper stripper 
= new PDFTextStripper();
String docText 
= stripper.getText(new PDDocument(cosDoc));
RTF文档:
rtf的转换则在javax中就有
DefaultStyledDocument styledDoc = new DefaultStyledDocument();
new RTFEditorKit().read(is, styledDoc, 0);
      String bodyText 
= styledDoc.getText(0, styledDoc.getLength());
这样就可以索引各种格式的文本了

html和xml的处理方法同样
不同的是html的可用类库是:JTidy
Xml可用的类库是SAX和digester

分享到:
评论

相关推荐

    lucene索引非txt文档笔记

    但在实际应用中,我们可能需要处理诸如 Word、PDF、RTF 和 XML 等多种格式的文档。为了实现对这些非文本格式的文档进行搜索,我们需要首先将其转换为纯文本,然后才能用 Lucene 进行索引。 对于 Word 文档,Java ...

    Lucene 全文检索实践.pdf

    3. **广泛支持文件格式**:Lucene不仅支持纯文本文件的索引,还提供了专门的文档类来处理HTML、XML、PDF和RTF等复杂格式的文档。 4. **丰富的搜索语法**:支持短语、布尔运算符、通配符、模糊搜索以及邻近度搜索等...

    基于Jakarta Lucene的LIUS索引框架---下载不扣分,回帖加1分,欢迎下载,童叟无欺

    Ms Word,Ms Excel,Ms PowerPoint,RTF,PDF,XML,HTML,TXT,Open Office序列和JavaBeans。针对JavaBeans的索引特别有用当我们要对数据库进行索引或刚好用户使用持久层ORM技术如:Hibernate,JDO,Torque,TopLink进行开发时...

    Lucene介绍的PPT

    1. **易于构建全文索引**:Lucene允许开发者快速为网站、文档(如RTF、PDF、XML)甚至数据库中的数据建立全文索引,并支持实时更新。 2. **免费与开放源码**:Lucene是开源的,遵循Apache许可证,鼓励分享和改进。 ...

    web开发常用jar

    通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iTextAsian.jar itext中关于亚洲编码的类库,在这里用于中文字体的输入。 junit.jar Junit包,当你运行Hibernate自带的测试...

    Elasticsearch的javaapi使用.docx

    通过以上步骤,我们已经了解了如何使用Java API来操作Elasticsearch的基本功能,包括创建索引、添加文档和查询文档。这些操作是构建基于Elasticsearch的应用程序的基础。希望本文能够为正在学习使用Java API操作...

    java开发常用jar包

    通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iTextAsian.jar itext中关于亚洲编码的类库,在这里用于中文字体的输入。 junit.jar Junit包,当你运行Hibernate自带的测试代码的...

    Regain:一个基于Jakarta Lucene的Java搜索引擎-开源

    Regain是一个基于Jakarta Lucene的... 它提供了索引和搜索文件的多种格式(HTML,XML,doc(x),xls(x),ppt(x),oo,PDF,RTF,mp3,mp4,Java)。 TagLibrary使您可以轻松地将搜索结果集成到基于JSP的网页中。

    regain-开源

    Regain 是一个基于 Jakarta Lucene 的 Java ... 它为多种格式(HTML、XML、doc(x)、xls(x)、ppt(x)、oo、PDF、RTF、mp3、mp4、Java)提供索引和搜索文件。 TagLibrary 简化了在基于 JSP 的网页中集成搜索结果的过程。

Global site tag (gtag.js) - Google Analytics