Luke是一个用于Lucene搜索引擎的,方便开发和诊断的第三方工具,它可以访问现有Lucene的索引,并允许您显示和修改。
Apache Tika 可以利用现有的类库,从不同的格式文档中读取数据。
利用Tika和Lucene的集成可以方便的对文档进行索引。
利用tika解析文档的例子
这里使用的是tika-1.2.jar
- package test;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStream;
- import org.apache.tika.exception.TikaException;
- import org.apache.tika.metadata.Metadata;
- import org.apache.tika.parser.AutoDetectParser;
- import org.apache.tika.parser.ParseContext;
- import org.apache.tika.parser.Parser;
- import org.apache.tika.sax.BodyContentHandler;
- import org.apache.tika.sax.ContentHandlerDecorator;
- import org.xml.sax.ContentHandler;
- import org.xml.sax.SAXException;
- public class TikaTest {
- public static void main(String[] args) {
- String classPath = TikaTest.class.getResource("/").getPath();
- classPath += "doc/test.doc";
- System.out.println(classPath);
- File f = new File(classPath);
- Parser parser = new AutoDetectParser();
- InputStream input = null;
- try {
- input = new FileInputStream(f);
- ContentHandler handler = new BodyContentHandler();
- ParseContext context = new ParseContext();
- context.set(Parser.class, parser);
- Metadata data = new Metadata();
- parser.parse(input, handler, data, context);
- System.out.println(handler.toString());
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally{
- if(input!=null){
- try {
- input.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
- }
转载于:https://blog.51cto.com/soukenan/1123387