利用PDFBOX进行PDF转成文本,可以直接生成LUCENE所需的DOCUMENT。
PDFBOX1.6中没有包含LucenePDFDocument类,需另下载pdfbox-lucene-1.6.0.jar
下载http://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox-lucene/1.6.0
doc = LucenePDFDocument.getDocument(file);
单独使用
public void parsePdfToText(String file) {
PDDocument doc = null;
OutputStreamWriter osw = null;
try {
try {
URL url = new URL(file);
doc = PDDocument.load(url);
} catch (Exception e) {
try {
doc = PDDocument.load(file);
} catch (IOException e1) {
e1.printStackTrace();
}
}
osw = new OutputStreamWriter(
new FileOutputStream("D:\\"+System.currentTimeMillis() + ".txt"),"UTF-8");
PDFTextStripper pts = new PDFTextStripper();
pts.setSortByPosition(true);
pts.setStartPage(1);
pts.setEndPage(Integer.MAX_VALUE);
pts.setAddMoreFormatting(true);
pts.writeText(doc, osw);
} catch (Exception e) {
e.printStackTrace();
}finally{
if(null != osw){
try {
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(null != doc){
try {
doc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
word,excel可用poi处理。
public static String parseWord(String path) {
StringBuffer sb = new StringBuffer();
try {
HWPFDocument doc = new HWPFDocument(new FileInputStream(path));
Range range = doc.getRange();
int rangeNum = range.numParagraphs();
for (int i = 0; i < rangeNum; i++) {
Paragraph pg = range.getParagraph(i);
sb.append(pg.text());
}
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString().trim();
}
lius是一个基于lucene的框架,其中有着许多文档转换类。
/**
*
* parseWordToText:word转为txt使用lius
* 引入tm-extractors-0.4.jar和Lius-1.0.jar
* 注意tm....jar包要放在lius前面,好像是两个包中有类的冲突问题
* (右击->BuildPath->Order and Export中进行调整),否则报java.lang.NoSuchMethodError:
* org.apache.poi.poifs.filesystem.POIFSFileSystem.getRoot()
* Lorg/apache/poi/poifs/filesystem/DirectoryEntry
* http://stardust1900.wordpress.com/2009/12/04/poi%E7%9A%84%E4%B8%80%E4%B8%AA%E9%97%AE%E9%A2%98/
* @param @param name 设定文件
* @return void DOM对象
* @throws
* @since search1.0
*/
public void parseWordToText(String name){
WordIndexer wi = new WordIndexer();
File file = new File(name);
try {
Writer writer = new OutputStreamWriter(new FileOutputStream("D:\\a.txt"));
wi.setStreamToIndex(new FileInputStream(file));
writer.write(wi.getContent());
} catch (Exception e1) {
e1.printStackTrace();
}
}
分享到:
相关推荐
----使用iText解析PDF 文档代码 PDFBoxHello.java ----------- --PDFBox测试代码 PDFBoxLuceneIndex.java ------ --PDFBox创建PDF文件的Lucene索引 PDFBoxPathIndex.java ------- --PDFBox创建指定目录PDF文档...
阅读“非常详细的Lucene文档.pdf”,您可以深入了解 Lucene 的工作原理、API 使用方法以及实际应用案例,这将帮助您成为 Lucene 方面的专家。同时,Apache 官方网站和社区论坛提供了丰富的教程和示例代码,对于深入...
《Lucene:中文全文检索库的核心技术解析》 Lucene,作为开源的全文检索库,是Java语言开发的,广泛应用于各种搜索引擎和信息检索系统中。这个强大的工具提供了高效的索引和搜索功能,使得开发者能够轻松地在大量...
**Lucene文档笔记详解** Lucene,源自Apache软件基金会4 Jakarta项目组,是一个备受开发者青睐的开源全文检索引擎工具包。它提供了强大的文本分析、索引构建和搜索功能,但值得注意的是,Lucene本身并不包含完整的...
《Lucene 4.6.0官方文档》是针对开源全文搜索引擎库Lucene的一个详尽参考资料,适用于版本4.6.0。Lucene是Apache软件基金会的一个项目,它提供了一个高性能、可扩展的信息检索库,广泛应用于各种搜索应用和信息管理...
《深入理解Lucene:搜索引擎核心技术解析》 Lucene是一个开源的全文检索库,由Apache软件基金会维护,它为Java开发者提供了强大的文本搜索功能。作为一款高效、可扩展的搜索引擎工具,Lucene在处理大量文本数据时能...
在这个使用案例中,我们将深入探讨如何利用Lucene实现对Word文档中的关键字检索并高亮显示结果。 首先,我们需要理解Lucene的基本工作原理。Lucene通过建立倒排索引(Inverted Index)来加速查询。倒排索引是一种...
**正文** ...总结,利用Lucene搜索中文PDF文档涉及多个技术层面,包括中文分词、PDF解析、索引构建、搜索执行和性能优化。通过理解这些关键技术,开发者可以构建出高效、准确的中文PDF文档检索系统。
经典的Lucene实例代码及详细解析以及Lucene结构流程介绍 Lucene是一个功能强大且灵活的开源搜索引擎库,它提供了一个简单易用的API,允许开发者快速构建搜索应用程序。下面将对Lucene的实例代码和结构流程进行详细...
Lucene 提供了索引和搜索文本的基本工具,包括分词、建立倒排索引、查询解析和评分机制等。 **安装与配置** 安装 Lucene 非常简单,只需要将对应的 JAR 包添加到项目依赖中。在 Maven 项目中,可以在 pom.xml 文件...
3. **查询解析**:用户输入的查询字符串会被转换为内部表示,Lucene支持多种查询语法,如布尔查询、短语查询、前缀查询、范围查询等。 4. **搜索执行**:查询执行涉及对索引的遍历,通过Scorer计算文档与查询的相关...
在Lucene中,被检索的文档首先需要被解析和预处理。这个过程包括分词(Tokenization)、去除停用词(Stopword Removal)、词干提取(Stemming)等步骤,以减少噪音和提高查询效果。此外,每个文档会被赋予一个唯一的...
《Lucene帮助文档详解》 Lucene是一款强大的全文搜索引擎库,由Apache软件基金会开发并维护。这个名为“lucene帮助文档.chm”的压缩包文件,包含了一份详尽的Lucene使用指南,通常以CHM(Microsoft Compiled ...
接下来,系统使用语言解析器对文档中的内容进行分词处理,生成一系列Token(最小的索引单元)。最后,这些Token经过索引器处理后加入到索引库中,由存储器负责管理和存储数据。 2. **检索索引库**:检索过程从输入...
**Lucene.net学习帮助文档** Lucene.net是一个开源全文搜索引擎库,它是Apache Lucene项目的一部分,专门针对.NET Framework进行了优化。这个压缩包包含了Lucene.net的源码和中文学习文档,旨在帮助开发者深入理解...
《深入理解Lucene.Net 2.0:源码与文档解析》 Lucene.Net是一个开源的全文搜索引擎库,它是Apache Lucene项目在.NET平台上的实现,由DotLucene发展而来,广泛应用于各种信息检索和文本挖掘场景。这个资料包包含了...
这是另一份全面的Lucene学习资料,可能涵盖了Lucene的主要特性和应用,包括分析器的使用、查询解析、索引优化等。 6. **新闻系统全文检索的思绪.txt** 这篇文章可能探讨了在新闻系统中集成全文检索的策略,包括...
首先,`lucene2.3API中文文档.chm`是针对Lucene 2.3版本的中文API文档,这为中文开发者提供了便利,帮助他们理解并使用这个版本的Lucene。在文档中,你可以找到关于Lucene核心组件的详细信息,如Analyzer(分析器)...
这个离线版的Lucene 5.4.1官方文档提供了关于该版本的详细信息,包括API参考、指南和示例,帮助开发者更好地理解和使用Lucene的功能。 在Lucene 5.4.1中,主要包含了以下核心知识点: 1. **索引构建**: - **...
`lucene英文帮助文档.rar` 和 `lucene中文帮助文档.rar` 提供了详细的Lucene API指南和使用示例,涵盖了从基本概念到高级特性的全面介绍。通过阅读这些文档,你可以深入了解Lucene的工作原理,掌握如何创建、维护...