⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileindexer.java

📁 LuceneInAction配套源码,LuceneInAction是对lucene api的详细讲解及具体应用.此源码即应用例子
💻 JAVA
字号:
package lia.handlingtypes.framework;import org.apache.lucene.document.Document;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.index.IndexReader;import org.apache.lucene.store.Directory;import org.apache.lucene.store.FSDirectory;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.SimpleAnalyzer;import java.io.File;import java.io.IOException;import java.io.FileInputStream;import java.util.Properties;import java.util.Date;/** * A File Indexer capable of recursively indexing a directory tree. */public class FileIndexer{  protected FileHandler fileHandler;  public FileIndexer(Properties props) throws IOException {    fileHandler = new ExtensionFileHandler(props);  }  public void index(IndexWriter writer, File file)    throws FileHandlerException {    if (file.canRead()) {      if (file.isDirectory()) {        String[] files = file.list();        if (files != null) {          for (int i = 0; i < files.length; i++) {            index(writer, new File(file, files[i]));          }        }      }      else {        System.out.println("Indexing " + file);        try {          Document doc = fileHandler.getDocument(file);          if (doc != null) {            writer.addDocument(doc);          }          else {            System.err.println("Cannot handle "              + file.getAbsolutePath() + "; skipping");          }        }        catch (IOException e) {          System.err.println("Cannot index "            + file.getAbsolutePath() + "; skipping ("            + e.getMessage() + ")");        }      }    }  }  public static void main(String[] args) throws Exception {    if (args.length < 3) {      usage();      System.exit(0);    }    Properties props = new Properties();    props.load(new FileInputStream(args[0]));    Directory dir = FSDirectory.getDirectory(args[2], true);    Analyzer analyzer = new SimpleAnalyzer();    IndexWriter writer = new IndexWriter(dir, analyzer, true);    FileIndexer indexer = new FileIndexer(props);    long start = new Date().getTime();    indexer.index(writer, new File(args[1]));    writer.optimize();    writer.close();    long end = new Date().getTime();    System.out.println();    IndexReader reader = IndexReader.open(dir);    System.out.println("Documents indexed: " + reader.numDocs());    System.out.println("Total time: " + (end - start) + " ms");    reader.close();  }  private static void usage() {    System.err.println("USAGE: java "      + FileIndexer.class.getName()      + " /path/to/properties /path/to/file/or/directory"      + " /path/to/index");  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -