搜索要首先要索引,索引的话最简单的方式是索引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
分享到:
相关推荐
但在实际应用中,我们可能需要处理诸如 Word、PDF、RTF 和 XML 等多种格式的文档。为了实现对这些非文本格式的文档进行搜索,我们需要首先将其转换为纯文本,然后才能用 Lucene 进行索引。 对于 Word 文档,Java ...
3. **广泛支持文件格式**:Lucene不仅支持纯文本文件的索引,还提供了专门的文档类来处理HTML、XML、PDF和RTF等复杂格式的文档。 4. **丰富的搜索语法**:支持短语、布尔运算符、通配符、模糊搜索以及邻近度搜索等...
Ms Word,Ms Excel,Ms PowerPoint,RTF,PDF,XML,HTML,TXT,Open Office序列和JavaBeans。针对JavaBeans的索引特别有用当我们要对数据库进行索引或刚好用户使用持久层ORM技术如:Hibernate,JDO,Torque,TopLink进行开发时...
1. **易于构建全文索引**:Lucene允许开发者快速为网站、文档(如RTF、PDF、XML)甚至数据库中的数据建立全文索引,并支持实时更新。 2. **免费与开放源码**:Lucene是开源的,遵循Apache许可证,鼓励分享和改进。 ...
通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iTextAsian.jar itext中关于亚洲编码的类库,在这里用于中文字体的输入。 junit.jar Junit包,当你运行Hibernate自带的测试...
通过以上步骤,我们已经了解了如何使用Java API来操作Elasticsearch的基本功能,包括创建索引、添加文档和查询文档。这些操作是构建基于Elasticsearch的应用程序的基础。希望本文能够为正在学习使用Java API操作...
通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iTextAsian.jar itext中关于亚洲编码的类库,在这里用于中文字体的输入。 junit.jar Junit包,当你运行Hibernate自带的测试代码的...
Regain是一个基于Jakarta Lucene的... 它提供了索引和搜索文件的多种格式(HTML,XML,doc(x),xls(x),ppt(x),oo,PDF,RTF,mp3,mp4,Java)。 TagLibrary使您可以轻松地将搜索结果集成到基于JSP的网页中。
Regain 是一个基于 Jakarta Lucene 的 Java ... 它为多种格式(HTML、XML、doc(x)、xls(x)、ppt(x)、oo、PDF、RTF、mp3、mp4、Java)提供索引和搜索文件。 TagLibrary 简化了在基于 JSP 的网页中集成搜索结果的过程。