`

lucene如何解析Doc文档

阅读更多
加入poi-scratchpad-3.0.2-FINAL-20080204.jar到lib下
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.hwpf.extractor.WordExtractor;

public class DocParser implements Parsable {

	private File file;

	private String content;

	private WordExtractor wordExtractor;

	public DocParser(File file) {
		this.file = file;
	}

	public String getContent() {

		try {
			if (content != null) {
				return content;
			}

			InputStream is = null;
			is = new FileInputStream(file);
			wordExtractor = new WordExtractor(is);
			content = wordExtractor.getText();
			return content;
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;

	}

	/**
	 * summary取内容的前200个字符
	 */
	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() {

		return file.getName();
	}
	public static void main(String[] args) {
		DocParser docParser = new DocParser(new File("E:\\EclipseStudyWorkspace\\LuceneParse\\fileSource\\XPDF使用文档.doc")) ;
		System.out.println("doc content : "+docParser.getContent()) ;
	}
}


txt的解析
package com.cs;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class TextParser implements Parsable {
	
	private File file ;
	
	private String content  ;
	
	public TextParser(File file) {
		super();
		this.file = file;
	}
	
	public String getContent() {
		if (content != null ) {
			return content ;
		}
	    try {
			BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file))) ;
			StringBuffer sb = new StringBuffer() ;
			String line = null ;
			while ((line = br.readLine()) != null) {
				sb.append(line).append("\n") ;
			}
			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() {
		
		return file.getName();
	}
	public static void main(String[] args) {
		TextParser textParser = new TextParser(new File("E:\\EclipseStudyWorkspace\\LuceneParse\\fileSource\\文档.txt")) ;
		System.out.println("text content : "+textParser.getContent()) ;
	}
	
}
分享到:
评论

相关推荐

    使用Lucene对doc、docx、pdf、txt文档进行全文检索功能的实现 - 干勾鱼的CSDN博客 - CSDN博客1

    在Java开发中,Lucene被广泛用于实现文件的全文检索功能,包括对doc、docx、pdf、txt等常见格式文档的文本内容检索。在本文中,我们将探讨如何使用Lucene对这些文件类型进行全文检索的实现。 首先,为了实现全文...

    Lucene技术文档doc

    **Lucene技术文档doc** **一、Lucene简介** Lucene是Apache软件基金会下的Jakarta项目组的一个核心项目,它是一款高性能、可扩展的全文检索引擎库。作为一个开源的Java库,Lucene提供了完整的搜索功能,包括索引、...

    lucene对doc.xlsx操作包

    然后,可以编写代码来读取doc.xlsx文件,提取文本,再用Lucene的Analyzer进行分析,最后将分析后的词项添加到索引。 五、示例代码 ```java import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache...

    lucene.net基本应用(doc)

    Lucene.NET 是一个基于 Apache Lucene 的全文检索库,它为 .NET Framework 提供了强大的文本搜索功能。这个示例代码展示了如何在 .NET 环境下使用 Lucene.NET 进行基本的索引创建和查询操作。 1. **索引创建**: -...

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

    此外,还可以通过插件系统扩展其功能,如添加新的文件解析支持。 8. **API使用**:在.NET环境中,开发者可以使用C#或VB.NET等语言与Lucene.NET交互,通过简单的API调用来创建索引、执行查询、管理索引更新等。 总...

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

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

    lucene 对 xml建立索引

    ### Lucene对XML文档建立索引的技术解析与实践 #### 一、引言 随着互联网技术的迅猛发展,非结构化数据(如XML文档)在企业和组织中的应用日益广泛。如何高效地处理这些非结构化的数据,特别是进行快速检索成为了一...

    lucene-core-6.6.0-API文档-中英对照版.zip

    包含翻译后的API文档:lucene-core-6.6.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.lucene:lucene-core:6.6.0; 标签:core、apache、lucene、jar包、java、API文档、中英对照版; 使用...

    lucene实例lucene实例

    《Lucene实战:深入解析与应用》 Lucene,作为Apache软件基金会的开源全文检索库,是Java领域中广泛使用的搜索引擎框架。它提供了强大的文本分析、索引和搜索功能,被许多大型项目采用,如Elasticsearch、Solr等。...

    lucene技术文档.doc

    4. **文本分析接口**:独立于特定语言和文件格式,可以通过实现Token流接口自定义文本分析。 5. **强大的查询引擎**:内置支持布尔运算、模糊查询、分组查询等功能。 Lucene 的优势在于: - **源代码开放**:遵循 ...

    非常详细的Lucene文档

    6. **搜索(Searching)**: 用户输入查询后,Lucene 使用查询解析器(Query Parser)将查询语句转化为内部表示,然后执行搜索算法找到匹配的文档。 **Lucene 的扩展与优化** 1. **查询解析器(Query Parsers)**: ...

    lucene1.0.doc

    6. 查询解析器(Query Parser):将用户的查询语句转化为Lucene能够理解的查询对象。 7. 搜索器(Searcher):执行查询,返回匹配的文档列表。 8. 更新器(Updater):用于对已建立的索引进行更新或删除操作。 **...

    lucene索引非txt文档笔记

    `StandardAnalyzer` 是 Lucene 提供的分析器,用于分词和其他文本预处理。`IndexWriter` 用于向索引目录添加文档,并负责管理索引的更新和优化。 总的来说,要让 Lucene 支持非文本格式的文档搜索,关键在于使用...

    Lucene笔记.doc

    - **使用Luke** - Lucene提供的可视化工具,可以查看和分析索引,便于调试和理解索引结构。 - **全文检索** - 通过倒排索引快速定位文档,分词后的关键词对应到文档的引用,从而提高搜索效率。 总的来说,Lucene是...

    基于lucene的文件管理系统

    2. **文档**: 在Lucene中,每个文件被视为一个文档,包含一组字段(Field),如文件名、内容、创建日期等。每个字段可以有不同的属性,如是否被索引、是否被存储等。 3. **分词器(Analyzer)**: 分词器负责将输入...

    Lucene DocValues介绍

    介绍了Lucene 7.5.0版本的 DocValues,文档中的链接包含了SortedSetDocValues、SortedDocValues、NumericDocValues、SortedNumericDocValues、BinaryDocValues

    lucene技术总结文档.doc

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    搜索引擎Lucene 简介.doc

    Lucene的核心功能是对文本型数据建立索引,它允许将各种格式的文档转换为文本,然后进行索引。不论是HTML、PDF还是其他格式的文件,只要能转换为文本,Lucene就能处理。 **全文检索的优势** 相比传统的数据库应用...

Global site tag (gtag.js) - Google Analytics