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

📄 fsversusramdirectorytest.java

📁 Lucene in Action 中文版代码下载
💻 JAVA
字号:
package lia.indexing;import org.apache.lucene.store.Directory;import org.apache.lucene.store.FSDirectory;import org.apache.lucene.store.RAMDirectory;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.analysis.SimpleAnalyzer;import junit.framework.TestCase;import java.io.IOException;import java.util.Collection;import java.util.ArrayList;import java.util.Iterator;/** * */public class FSversusRAMDirectoryTest extends TestCase {  private Directory fsDir;  private Directory ramDir;  private Collection docs = loadDocuments(3000, 5);  protected void setUp() throws Exception {    String fsIndexDir =      System.getProperty("java.io.tmpdir", "tmp") +      System.getProperty("file.separator") + "fs-index";    ramDir = new RAMDirectory();    fsDir = FSDirectory.getDirectory(fsIndexDir, true);  }  public void testTiming() throws IOException {    long ramTiming = timeIndexWriter(ramDir);    long fsTiming = timeIndexWriter(fsDir);    assertTrue(fsTiming > ramTiming);    System.out.println("RAMDirectory Time: " + (ramTiming) + " ms");    System.out.println("FSDirectory Time : " + (fsTiming) + " ms");  }  private long timeIndexWriter(Directory dir) throws IOException {    long start = System.currentTimeMillis();    addDocuments(dir);    long stop = System.currentTimeMillis();    return (stop - start);  }  private void addDocuments(Directory dir) throws IOException {    IndexWriter writer = new IndexWriter(dir, new SimpleAnalyzer(),      true);    /**    // change to adjust performance of indexing with FSDirectory    writer.mergeFactor = writer.mergeFactor;    writer.maxMergeDocs = writer.maxMergeDocs;    writer.minMergeDocs = writer.minMergeDocs;    */    for (Iterator iter = docs.iterator(); iter.hasNext();) {      Document doc = new Document();      String word = (String) iter.next();      doc.add(Field.Keyword("keyword", word));      doc.add(Field.UnIndexed("unindexed", word));      doc.add(Field.UnStored("unstored", word));      doc.add(Field.Text("text", word));      writer.addDocument(doc);    }    writer.optimize();    writer.close();  }  private Collection loadDocuments(int numDocs, int wordsPerDoc) {    Collection docs = new ArrayList(numDocs);    for (int i = 0; i < numDocs; i++) {      StringBuffer doc = new StringBuffer(wordsPerDoc);      for (int j = 0; j < wordsPerDoc; j++) {        doc.append("Bibamus ");      }      docs.add(doc.toString());    }    return docs;  }}

⌨️ 快捷键说明

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