lucene读取word,excel,pdf
来源:互联网 发布:户型优化设计大赛 编辑:程序博客网 时间:2024/05/17 22:44
前面在写lucene入门的时候,例子只能对txt文档建立索引,不能对word,excel,pdf建立索引,要读取这些文档的内容,需要额外的jar包,好在apache这个开源组织好,提供了对这些文档解析的开源jar包
索引和查询,我就不再写出来了,前面文章有,下面只将这三种文档的读取方法贴在下面
1.首先来看WORD文档:
这里用的是poi,相关jar包(http://poi.apache.org/)可以到apache官网上去下载,然后加到工程中(以下所要用的jar包也是,不再重复说)。一个poi.jar还不行,还需要将poi-scratchpad.jar包导入才行
public static String readWord(String path) {StringBuffer content = new StringBuffer("");// 文档内容try {HWPFDocument doc = new HWPFDocument(new FileInputStream(path));Range range = doc.getRange();int paragraphCount = range.numParagraphs();// 段落for (int i = 0; i < paragraphCount; i++) {// 遍历段落读取数据Paragraph pp = range.getParagraph(i);content.append(pp.text());}} catch (Exception e) {e.printStackTrace();}return content.toString().trim();}
2.再来看EXCEL文档:
这里用的是jxl包,但jxl包(http://www.andykhan.com/jexcelapi/ )目前还尚不支持2007或更高的版本,但poi可以,现在相信开源的强大了,solr在今年3月份出的3.1版,5月份就出了3.2版,可以看出更新的速度
下面的例子,是用jxl包读取excel2003的,有兴趣的可以去查一下,用poi去读07版的excel,好像要加入很多关联jar包才行
public static String readExcel(String path) throws Exception {FileInputStream fis = new FileInputStream(path);StringBuilder sb = new StringBuilder();jxl.Workbook rwb = Workbook.getWorkbook(fis);Sheet[] sheet = rwb.getSheets();for (int i = 0; i < sheet.length; i++) {Sheet rs = rwb.getSheet(i);for (int j = 0; j < rs.getRows(); j++) {Cell[] cells = rs.getRow(j);for (int k = 0; k < cells.length; k++)sb.append(cells[k].getContents());}}fis.close();return sb.toString();}
3.最后来看PDF文档:
这里用的是PDFBox,相关jar包可以到apache官网上去下载:http://pdfbox.apache.org/download.html
这里要注意,如果只单单导入pdfbox.jar包,还会报错,还需要导入commons-logging.jar和fontbox.jar包才行
public static String readPdf(String path) throws Exception { StringBuffer content = new StringBuffer("");// 文档内容 FileInputStream fis = new FileInputStream(path); PDFParser p = new PDFParser(fis); p.parse(); PDFTextStripper ts = new PDFTextStripper(); content.append(ts.getText(p.getPDDocument())); fis.close(); return content.toString().trim(); }
如果提取pdf文档的时候都会抛出异常:java.lang.Throwable: Warning: You did not close the PDF Document,请参考下面资料:
1.http://lqw.iteye.com/blog/721568
2.http://blog.csdn.net/rxr1st/article/details/2204460
在solr官网上看到:
Rich Document Parsing and Indexing (PDF, Word, HTML, etc) using Apache Tika
Tika好像是把poi,pdfbox等一些解析jar包容到一起了,下面看看如何在solr中实现对pdf的解析,估计要看配置文件才行
参考资料:
1.http://blog.163.com/lewutian@126/blog/static/163824796201041131910140/
2.http://blog.csdn.net/iamwangbao/archive/2009/11/04/4767387.aspx
- lucene读取word,excel,pdf
- UIWebView 读取pdf,word,excel
- java 读取 word ,excel ,pdf
- Java读取word,excel,pdf
- php 怎样读取word,excel,pdf,
- 在android中读取word、excel、pdf
- Lucene中的数据解析——PDF,word,excel
- 一步一步跟我学习lucene(15)---java读取word excel pdf及lucene搜索之正则表达式查询RegExQuery和手机邮箱查询示例
- JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法
- JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法
- JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法
- JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法
- JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法
- 从JAVA直接读取EXCEL、WORD并生成PDF文件
- JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法
- JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法
- JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法
- JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法
- 无题.端午
- 今天写的代码总结
- ARM仿真调试技术
- 开始记录自己的技术博客~~
- 几种设为首页的代码
- lucene读取word,excel,pdf
- 卸载ORACLE 10g
- 清除putty默认设置
- poj1325
- 嵌入式的学习总结
- 为ASP.NET MVC RC分离Controllers-Views项目后添加“脚手架”功能
- new joiner
- Crecordset类
- 引用和指针的区别