加入jar包(poi-3.0.2-FINAL-20080204.jar poi-contrib-3.0.2-FINAL-20080204.jar poi-scratchpad-3.0.2-FINAL-20080204.jar )
package com.cs;
public interface Parsable {
public String getTitle() ;
public String getContent() ;
public String getSummary() ;
}
package com.cs;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.hslf.HSLFSlideShow;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.usermodel.SlideShow;
public class PPTParser implements Parsable {
private File file;
private String content;
public PPTParser(File file) {
this.file = file;
}
public String getContent() {
if (content != null) {
return content;
}
// HSLFSlideShow contains the main functionality for the Powerpoint file
// "reader". It is only a very basic class for now
// SlideShow is a friendly wrapper on top of the more scary
// HSLFSlideShow
InputStream is;
try {
is = new FileInputStream(file);
SlideShow ss = new SlideShow(new HSLFSlideShow(is));
Slide[] slides = ss.getSlides();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < slides.length; i++) {
// This class represents a run of text in a powerpoint document.
// That run could be text on a sheet, or text in a note.
// It is only a very basic class for now
TextRun[] t = slides[i].getTextRuns();
for (int j = 0; j < t.length; j++) {
sb.append(t[j].getText());
}
sb.append(slides[i].getTitle());
}
content = sb.toString();
return content;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public String getSummary() {
String summary;
if (content == null) {
getContent();
}
if (content.length() > 200) {
summary = content.substring(0, 200);
} else {
summary = content;
}
return summary;
}
public String getTitle() {
// TODO Auto-generated method stub
return file.getName();
}
public static void main(String[] args) {
PPTParser pptParser = new PPTParser(new File("E:\\EclipseStudyWorkspace\\LuceneParse\\fileSource\\搜索引擎-基础.ppt")) ;
System.out.println("ppt content : "+pptParser.getContent()) ;
}
}
分享到:
相关推荐
Lucene提供了一套文本分析接口,支持多种语言和文件格式的分析。它的索引文件格式是跨平台的,可以在不同操作系统上共享。此外,Lucene还支持分块索引,便于快速为新内容建立索引,并通过合并优化索引性能。 **全文...
1. **易于构建全文索引**:Lucene允许开发者快速为网站、文档(如RTF、PDF、XML)甚至数据库中的数据建立全文索引,并支持实时更新。 2. **免费与开放源码**:Lucene是开源的,遵循Apache许可证,鼓励分享和改进。 ...
Lucene通过扫描文档中的每个词,建立索引项,记录每个词的出现频率和位置,这样在搜索时可以通过索引来快速定位相关信息,而不是进行线性的顺序查找。 信息检索系统通常包含以下四个主要过程: 1. 构建文本库:收集...
Lucene提供了文本分析、索引创建、搜索查询解析和执行等功能,为构建高性能搜索引擎提供了基础工具。 **二、Lucene的工作流程** 1. 文档收集:首先,需要将要索引的数据(如HTML文档、数据库记录等)导入到Lucene。...
这些PPT可能会包含以下内容:如何搭建一个简单的Lucene应用,如何创建、索引和搜索文档,以及如何进行性能调优。它们也可能涵盖高级主题,如分布式搜索(例如通过Solr或Elasticsearch)、近实时搜索、多字段排序和...
总结,利用Apache Lucene实现对Word、PPT、Excel、PDF和TXT等文件的全文检索,需要经过文件解析、内容提取、分词、索引构建、查询解析、搜索匹配、结果排序和展示等多个环节。这一过程涉及到了文件处理、文本分析和...
1. **索引构建**:Lucene.NET首先对收集的数据进行分析,包括分词、去除停用词等预处理,然后创建倒排索引,将每个单词与其在文档中的位置关联起来。 2. **倒排索引**:倒排索引是一种数据结构,使得可以快速查找出...
3. **搜索过程**: 用户输入查询,查询解析器将其转化为Lucene查询对象,索引搜索器使用该对象在索引中查找匹配的文档,根据评分系统返回最相关的文档。 4. **结果展示**: 搜索结果通常按照评分排序,高分在前,用户...
好不容易整理的,分享给大家。 里面有4个文件,详细说明了全文检索的初步使用过程 ...第二个:lucene_初级学习资料.ppt 第三个:lucene_入门整理.pdf 第四个:Lucene教程详解.doc 绝对超值,新手必备宝典。超值分享。
描述中的"Lucene资料大全"暗示了这个压缩包可能包含了除书籍之外的其他学习材料,比如教程、PPT或其他文档。特别提到了"尚学堂科技_张志宇_lucene.ppt",这可能是一个由尚学堂科技的张志宇制作的Lucene讲解PPT,通常...
Lucene的核心功能包括文本分析、索引构建、查询解析和结果排序。它的主要特点是高效、灵活和可扩展。源码的学习可以帮助我们深入了解这些功能是如何实现的,而PPT则可能通过实例讲解这些概念。 2. **文本分析** ...
对于Excel和PPT,虽然它们主要是结构化数据,但Lucene也能通过解析内容提取文本信息。 除了基本的检索功能,Lucene还提供了高级搜索特性,如布尔查询、短语查询、模糊查询和近似查询等。用户可以通过构造复杂的查询...
1. **文件格式支持**:Lucene.NET能够解析多种办公文档和PDF文件,这是因为其内建或通过第三方库(如Apache POI和PDFBox)实现了对这些格式的支持。它能够抽取文档中的文本内容,忽略格式和样式信息,这在全文检索中...
这个过程可以直观地分为几个步骤,如添加文档、检查是否需要合并、执行合并等。通过这种方式,Lucene可以有效地管理多个小索引段,避免一次性合并大量数据导致的性能瓶颈。 然后,归并算法是Lucene处理索引段合并的...
除了 Indexer 和 Searcher,一个完整的搜索引擎系统通常还包括其他组件,如 Collector(收集器)用于处理搜索结果,Analyzer(分析器)用于处理文本数据,以及 QueryParser(查询解析器)用于将用户输入的查询语句...
本文将深入探讨如何使用Lucene.Net进行文件检索,特别是针对doc、xls、ppt、txt和pdf等常见文件类型的检索。通过实例化和理解Lucene.Net的关键概念,你可以构建出强大的文件搜索解决方案。 首先,我们需要了解...
通过查询解析器生成的查询对象,Lucene 能够找到与之匹配的文档,并根据相关性进行排序。 4. **文档存储(Document Store)**:除了索引,Lucene 还支持文档的存储。可以将原始文档的全部或部分内容存储在索引中,...
- **基于Java的全文索引引擎--Lucene.ppt**:这份PPT可能详细解释了如何在Java应用中集成Lucene,包括代码示例和最佳实践。 通过阅读这些文档和实际操作,你将能深入了解Lucene的用法,并能够根据需求构建自己的...