2013-03-07 46 views
0

大家好,我想在我的日志解析器项目中使用Apache Lucene。现在,我已经使用了波纹管代码,但我不能够导入org.apache.lucene.analysis.SimpleAnalyzer 我已经包括lucene4.1罐子导入org.apache.lucene.analysis.SimpleAnalyzer符号在Apache lucene中找不到错误

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package logsearchengine; 

import java.io.File; 
import org.apache.lucene.index.IndexWriter; 
import org.apache.lucene.store.FSDirectory; 
import java.io.File; 
import java.io.FileReader; 
import java.io.IOException; 
import org.apache.lucene.analysis.SimpleAnalyzer; 
import org.apache.lucene.document.Document; 
import org.apache.lucene.document.Field; 
import org.apache.lucene.index.IndexWriter; 
import org.apache.lucene.store.FSDirectory; 

/** 
* 
* @author maclean 
*/ 
public class LogSearchEngine { 


    private int index(File indexDir, File dataDir, String suffix) throws Exception { 

     IndexWriter indexWriter = new IndexWriter(FSDirectory.open(indexDir), new SimpleAnalyzer(),true,IndexWriter.MaxFieldLength.LIMITED); 
     indexWriter.setUseCompoundFile(false); 

     indexDirectory(indexWriter, dataDir, suffix); 

     int numIndexed = indexWriter.maxDoc(); 
     indexWriter.optimize(); 
     indexWriter.close(); 

     return numIndexed; 

    } 

    private void indexDirectory(IndexWriter indexWriter, File dataDir, 
      String suffix) throws IOException { 

     File[] files = dataDir.listFiles(); 
     for (int i = 0; i < files.length; i++) { 
      File f = files[i]; 
      if (f.isDirectory()) { 
       indexDirectory(indexWriter, f, suffix); 
      } 
      else { 
       indexFileWithIndexWriter(indexWriter, f, suffix); 
      } 
     } 

    } 

    private void indexFileWithIndexWriter(IndexWriter indexWriter, File f, 
      String suffix) throws IOException { 

     if (f.isHidden() || f.isDirectory() || !f.canRead() || !f.exists()) { 
      return; 
     } 
     if (suffix!=null && !f.getName().endsWith(suffix)) { 
      return; 
     } 
     System.out.println("Indexing file " + f.getCanonicalPath()); 

     Document doc = new Document(); 
     doc.add(new Field("contents", new FileReader(f)));   
     doc.add(new Field("filename", f.getCanonicalPath(), 
      Field.Store.YES, Field.Index.ANALYZED)); 

     indexWriter.addDocument(doc); 

    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     File indexDir = new File("C:/index/"); 
     File dataDir = new File("C:/programs/eclipse/workspace/"); 
     String suffix = "java"; 

     SimpleFileIndexer indexer = new SimpleFileIndexer(); 

     int numIndex = indexer.index(indexDir, dataDir, suffix); 

     System.out.println("Total files indexed " + numIndex); 
    } 
} 

我说只有一个jar文件是Lucene的核心-4.1.0.jar。我无法导入样本分析器。因此,我无法创建索引编写器。我错过了什么。我是lucene新手

+0

“我无法创建索引编写器” - 您可以详细说明吗? – mindas 2013-03-07 12:14:35

+0

我只添加了一个lucene-core-4.1.0.jar的jar文件。现在我无法移植样本分析器因此我无法创建索引编写器。我错过了什么。我是lucene新手 – 2013-03-07 12:21:51

回答

1
+0

谢谢..现在我明白了。你知道我在哪里可以找到文档,告诉我究竟使用哪个罐子,为什么 – 2013-03-08 05:22:54

+0

我认为类在4.0或4.1版本的罐子上有所改变 - 但我不知道任何指向右边的文档jar ;-( – mindas 2013-03-08 09:39:02

+0

我在他们的网站上了他们。谢谢你的帮助 – 2013-03-08 09:40:08