`

lucene如何解析PPT文档

阅读更多
加入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.ppt

    Lucene提供了一套文本分析接口,支持多种语言和文件格式的分析。它的索引文件格式是跨平台的,可以在不同操作系统上共享。此外,Lucene还支持分块索引,便于快速为新内容建立索引,并通过合并优化索引性能。 **全文...

    Lucene介绍的PPT

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

    lucene1.ppt

    Lucene通过扫描文档中的每个词,建立索引项,记录每个词的出现频率和位置,这样在搜索时可以通过索引来快速定位相关信息,而不是进行线性的顺序查找。 信息检索系统通常包含以下四个主要过程: 1. 构建文本库:收集...

    搜索引擎 Lucene PPT 教程

    Lucene提供了文本分析、索引创建、搜索查询解析和执行等功能,为构建高性能搜索引擎提供了基础工具。 **二、Lucene的工作流程** 1. 文档收集:首先,需要将要索引的数据(如HTML文档、数据库记录等)导入到Lucene。...

    Lucene项目的文档和源码

    这些PPT可能会包含以下内容:如何搭建一个简单的Lucene应用,如何创建、索引和搜索文档,以及如何进行性能调优。它们也可能涵盖高级主题,如分布式搜索(例如通过Solr或Elasticsearch)、近实时搜索、多字段排序和...

    lucene word ppt excel pdf全文检索

    总结,利用Apache Lucene实现对Word、PPT、Excel、PDF和TXT等文件的全文检索,需要经过文件解析、内容提取、分词、索引构建、查询解析、搜索匹配、结果排序和展示等多个环节。这一过程涉及到了文件处理、文本分析和...

    lucene.net构建搜索引擎ppt

    1. **索引构建**:Lucene.NET首先对收集的数据进行分析,包括分词、去除停用词等预处理,然后创建倒排索引,将每个单词与其在文档中的位置关联起来。 2. **倒排索引**:倒排索引是一种数据结构,使得可以快速查找出...

    Java的全文索引引擎--Lucene.ppt

    3. **搜索过程**: 用户输入查询,查询解析器将其转化为Lucene查询对象,索引搜索器使用该对象在索引中查找匹配的文档,根据评分系统返回最相关的文档。 4. **结果展示**: 搜索结果通常按照评分排序,高分在前,用户...

    Lucene详细使用文档

    好不容易整理的,分享给大家。 里面有4个文件,详细说明了全文检索的初步使用过程 ...第二个:lucene_初级学习资料.ppt 第三个:lucene_入门整理.pdf 第四个:Lucene教程详解.doc 绝对超值,新手必备宝典。超值分享。

    Lucene资料大全(包括Lucene_in_Action书等)

    描述中的"Lucene资料大全"暗示了这个压缩包可能包含了除书籍之外的其他学习材料,比如教程、PPT或其他文档。特别提到了"尚学堂科技_张志宇_lucene.ppt",这可能是一个由尚学堂科技的张志宇制作的Lucene讲解PPT,通常...

    北风网Lucene搜索引擎源码及PPT

    Lucene的核心功能包括文本分析、索引构建、查询解析和结果排序。它的主要特点是高效、灵活和可扩展。源码的学习可以帮助我们深入了解这些功能是如何实现的,而PPT则可能通过实例讲解这些概念。 2. **文本分析** ...

    lucene 3.6 检索文件 pdf word ppt excel txt html xml

    对于Excel和PPT,虽然它们主要是结构化数据,但Lucene也能通过解析内容提取文本信息。 除了基本的检索功能,Lucene还提供了高级搜索特性,如布尔查询、短语查询、模糊查询和近似查询等。用户可以通过构造复杂的查询...

    lucene.net 用于doc,docx,xls,xlsx,ppt,pptx,pdf等文件检索

    1. **文件格式支持**:Lucene.NET能够解析多种办公文档和PDF文件,这是因为其内建或通过第三方库(如Apache POI和PDFBox)实现了对这些格式的支持。它能够抽取文档中的文本内容,忽略格式和样式信息,这在全文检索中...

    深入了解Lucene之四 主要算法介绍.ppt

    这个过程可以直观地分为几个步骤,如添加文档、检查是否需要合并、执行合并等。通过这种方式,Lucene可以有效地管理多个小索引段,避免一次性合并大量数据导致的性能瓶颈。 然后,归并算法是Lucene处理索引段合并的...

    lucene-初级学习资料.ppt

    除了 Indexer 和 Searcher,一个完整的搜索引擎系统通常还包括其他组件,如 Collector(收集器)用于处理搜索结果,Analyzer(分析器)用于处理文本数据,以及 QueryParser(查询解析器)用于将用户输入的查询语句...

    Lucene.Net 文件检索doc,xls,ppt,txt,pdf文件(实例)

    本文将深入探讨如何使用Lucene.Net进行文件检索,特别是针对doc、xls、ppt、txt和pdf等常见文件类型的检索。通过实例化和理解Lucene.Net的关键概念,你可以构建出强大的文件搜索解决方案。 首先,我们需要了解...

    lucenelucenelucenelucene

    通过查询解析器生成的查询对象,Lucene 能够找到与之匹配的文档,并根据相关性进行排序。 4. **文档存储(Document Store)**:除了索引,Lucene 还支持文档的存储。可以将原始文档的全部或部分内容存储在索引中,...

    lucene全文检索全面教程

    - **基于Java的全文索引引擎--Lucene.ppt**:这份PPT可能详细解释了如何在Java应用中集成Lucene,包括代码示例和最佳实践。 通过阅读这些文档和实际操作,你将能深入了解Lucene的用法,并能够根据需求构建自己的...

Global site tag (gtag.js) - Google Analytics