发布于 2015-04-24 07:59:25 | 194 次阅读 | 评论: 0 | 来源: 网友投递
Apache Lucene全文检索引擎工具包
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
首先说明Lucene如果想对office进行操作的话,需要额外的包
这里有几种方法
一是使用POI
二是使用jacob
这里的代码使用的是jacob对于word进行处理
示例代码:
package jacob;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class WordReader {
public WordReader() {
// TODO Auto-generated constructor stub
}
public static void extractDoc(String inputFile, String outputFile){
boolean flag = false;
//打开word应用程序
ActiveXComponent app = new ActiveXComponent("Word.Application");
try{
//设置word不可见
app.setProperty("Visible", new Variant(false));
//打开word文件
Dispatch doc1 = app.getProperty("Document").toDispatch();
Dispatch doc2 = Dispatch.invoke(doc1, "Open", Dispatch.Method, new Object[]{inputFile, new Variant(false),new Variant(true)}, new int[1]).toDispatch();
//作为txt格式保存到临时文件
Dispatch.invoke(doc2, "SaveAs", Dispatch.Method, new Object[]{outputFile, new Variant(7)}, new int[1]);
//关闭Word
Variant f = new Variant(false);
Dispatch.call(doc2, "Close", f);
flag = true;
}catch(Exception e){
e.printStackTrace();
}finally{
app.invoke("Quit", new Variant[]{});
}
if(flag == true){
System.out.println("Transformed Successfully");
}else{
System.out.println("Transform Failed");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
WordReader.extractDoc("E:\Hadoop.doc", "E:\jacob.txt");
}
}