加入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()) ;
}
}
分享到:
相关推荐
在Java开发中,Lucene被广泛用于实现文件的全文检索功能,包括对doc、docx、pdf、txt等常见格式文档的文本内容检索。在本文中,我们将探讨如何使用Lucene对这些文件类型进行全文检索的实现。 首先,为了实现全文...
**Lucene技术文档doc** **一、Lucene简介** Lucene是Apache软件基金会下的Jakarta项目组的一个核心项目,它是一款高性能、可扩展的全文检索引擎库。作为一个开源的Java库,Lucene提供了完整的搜索功能,包括索引、...
然后,可以编写代码来读取doc.xlsx文件,提取文本,再用Lucene的Analyzer进行分析,最后将分析后的词项添加到索引。 五、示例代码 ```java import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache...
Lucene.NET 是一个基于 Apache Lucene 的全文检索库,它为 .NET Framework 提供了强大的文本搜索功能。这个示例代码展示了如何在 .NET 环境下使用 Lucene.NET 进行基本的索引创建和查询操作。 1. **索引创建**: -...
此外,还可以通过插件系统扩展其功能,如添加新的文件解析支持。 8. **API使用**:在.NET环境中,开发者可以使用C#或VB.NET等语言与Lucene.NET交互,通过简单的API调用来创建索引、执行查询、管理索引更新等。 总...
本文将深入探讨如何使用Lucene.Net进行文件检索,特别是针对doc、xls、ppt、txt和pdf等常见文件类型的检索。通过实例化和理解Lucene.Net的关键概念,你可以构建出强大的文件搜索解决方案。 首先,我们需要了解...
### Lucene对XML文档建立索引的技术解析与实践 #### 一、引言 随着互联网技术的迅猛发展,非结构化数据(如XML文档)在企业和组织中的应用日益广泛。如何高效地处理这些非结构化的数据,特别是进行快速检索成为了一...
包含翻译后的API文档:lucene-core-6.6.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.lucene:lucene-core:6.6.0; 标签:core、apache、lucene、jar包、java、API文档、中英对照版; 使用...
6. 查询解析器(Query Parser):将用户的查询语句转化为Lucene能够理解的查询对象。 7. 搜索器(Searcher):执行查询,返回匹配的文档列表。 8. 更新器(Updater):用于对已建立的索引进行更新或删除操作。 **...
4. **文本分析接口**:独立于特定语言和文件格式,可以通过实现Token流接口自定义文本分析。 5. **强大的查询引擎**:内置支持布尔运算、模糊查询、分组查询等功能。 Lucene 的优势在于: - **源代码开放**:遵循 ...
6. **搜索(Searching)**: 用户输入查询后,Lucene 使用查询解析器(Query Parser)将查询语句转化为内部表示,然后执行搜索算法找到匹配的文档。 **Lucene 的扩展与优化** 1. **查询解析器(Query Parsers)**: ...
【标题】:“基于Lucene的桌面搜索引擎.doc” 【描述】:该文档主要探讨了如何利用Apache Lucene构建一个桌面搜索引擎,这是一个开源的全文检索库,为开发者提供了强大的文本搜索功能。 【标签】:“Lucene 搜索...
- **使用Luke** - Lucene提供的可视化工具,可以查看和分析索引,便于调试和理解索引结构。 - **全文检索** - 通过倒排索引快速定位文档,分词后的关键词对应到文档的引用,从而提高搜索效率。 总的来说,Lucene是...
2. **文档**: 在Lucene中,每个文件被视为一个文档,包含一组字段(Field),如文件名、内容、创建日期等。每个字段可以有不同的属性,如是否被索引、是否被存储等。 3. **分词器(Analyzer)**: 分词器负责将输入...
介绍了Lucene 7.5.0版本的 DocValues,文档中的链接包含了SortedSetDocValues、SortedDocValues、NumericDocValues、SortedNumericDocValues、BinaryDocValues
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
Lucene的核心功能是对文本型数据建立索引,它允许将各种格式的文档转换为文本,然后进行索引。不论是HTML、PDF还是其他格式的文件,只要能转换为文本,Lucene就能处理。 **全文检索的优势** 相比传统的数据库应用...
- **查询过程**:用户提交查询请求,Lucene根据索引文件返回匹配的文档集合(Hits)。 **与数据库索引的区别**: - **数据结构**:虽然两者都可以看作是一种数据存储结构,但数据库索引主要用于加速特定字段的查找...