Lucene学习笔记(二)import java.io.IOException;
Lucene学习笔记(二)
Lucene学习笔记(二)import org.apache.lucene.analysis.Analyzer;
Lucene学习笔记(二)import org.apache.lucene.analysis.SimpleAnalyzer;
Lucene学习笔记(二)import org.apache.lucene.document.Document;
Lucene学习笔记(二)import org.apache.lucene.document.Field;
Lucene学习笔记(二)import org.apache.lucene.index.IndexReader;
Lucene学习笔记(二)import org.apache.lucene.index.IndexWriter;
Lucene学习笔记(二)import org.apache.lucene.store.Directory;
Lucene学习笔记(二)import org.apache.lucene.store.FSDirectory;
Lucene学习笔记(二)
Lucene学习笔记(二)import junit.framework.TestCase;
Lucene学习笔记(二)
Lucene学习笔记(二)
Lucene学习笔记(二)
public class BaseIndexTestCase extends TestCase 
}

Lucene学习笔记(二)import java.io.IOException;
Lucene学习笔记(二)
Lucene学习笔记(二)import org.apache.lucene.analysis.Analyzer;
Lucene学习笔记(二)import org.apache.lucene.analysis.WhitespaceAnalyzer;
Lucene学习笔记(二)import org.apache.lucene.document.Document;
Lucene学习笔记(二)import org.apache.lucene.document.Field;
Lucene学习笔记(二)import org.apache.lucene.index.IndexReader;
Lucene学习笔记(二)import org.apache.lucene.index.IndexWriter;
Lucene学习笔记(二)import org.apache.lucene.index.Term;
Lucene学习笔记(二)import org.apache.lucene.search.Hits;
Lucene学习笔记(二)import org.apache.lucene.search.IndexSearcher;
Lucene学习笔记(二)import org.apache.lucene.search.Query;
Lucene学习笔记(二)import org.apache.lucene.search.TermQuery;
Lucene学习笔记(二)
Lucene学习笔记(二)
Lucene学习笔记(二)
public class DocumentDeleteTest extends BaseIndexTestCase 

Lucene学习笔记(二)import java.io.IOException;
Lucene学习笔记(二)
Lucene学习笔记(二)import org.apache.lucene.analysis.Analyzer;
Lucene学习笔记(二)import org.apache.lucene.analysis.WhitespaceAnalyzer;
Lucene学习笔记(二)import org.apache.lucene.document.Document;
Lucene学习笔记(二)import org.apache.lucene.document.Field;
Lucene学习笔记(二)import org.apache.lucene.index.IndexReader;
Lucene学习笔记(二)import org.apache.lucene.index.IndexWriter;
Lucene学习笔记(二)import org.apache.lucene.index.Term;
Lucene学习笔记(二)import org.apache.lucene.search.Hits;
Lucene学习笔记(二)import org.apache.lucene.search.IndexSearcher;
Lucene学习笔记(二)import org.apache.lucene.search.Query;
Lucene学习笔记(二)import org.apache.lucene.search.TermQuery;
Lucene学习笔记(二)
Lucene学习笔记(二)
Lucene学习笔记(二)
public class DocumentUpdateTest extends BaseIndexTestCase 

Lucene学习笔记(二)import org.apache.lucene.analysis.Analyzer;
Lucene学习笔记(二)import org.apache.lucene.analysis.SimpleAnalyzer;
Lucene学习笔记(二)import org.apache.lucene.document.Document;
Lucene学习笔记(二)import org.apache.lucene.document.Field;
Lucene学习笔记(二)import org.apache.lucene.index.IndexWriter;
Lucene学习笔记(二)import org.apache.lucene.store.Directory;
Lucene学习笔记(二)import org.apache.lucene.store.FSDirectory;
Lucene学习笔记(二)
Lucene学习笔记(二)
Lucene学习笔记(二)
public class IndexTuningDemo 


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(30005);//加载数据

  
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(
new Field("keyword",word,Field.Store.YES,Field.Index.UN_TOKENIZED));
      doc.add(
new Field("unindexed",word,Field.Store.YES,Field.Index.NO));
      doc.add(
new Field("unstored",word,Field.Store.NO,Field.Index.TOKENIZED));
      doc.add(
new Field("text",word,Field.Store.YES,Field.Index.TOKENIZED));
      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;
  }
}


相关文章: