使用RAMDirectory 和 FSDirectory对于索引创建的优化

/** 这里使用的是索引的优化* 这里有话使用的是对于FSDirectory和RAMDirectory的路径的选择,* FSDirectory使用的是系统磁盘上文件的路径* 而RAMDiectory使用的是内存中的路径* RAM的不可以永久保存* 下面的代码就是分别演示这两种建立存储索引的方法。* */package merge;import java.io.IOException;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.store.Directory;import org.apache.lucene.store.FSDirectory;import org.apache.lucene.store.RAMDirectory;public class MergeIndex {//创建索引的路径private String INDEX_PATH = "E:\\Lucene项目\\索引路径";//声明一个RAMDirectory对象RAMDirectory ramDir = null;//声明一个FSDirectory对象FSDirectory fsDir = null;public MergeIndex(){System.out.println("============程序开始了=========");try{System.out.println("创建ram索引目录—————>>>");ramDir = new RAMDirectory();System.out.println("创建fs索引目录—————->>>");fsDir = FSDirectory.getDirectory(INDEX_PATH, true);System.out.println("创建索引器 1 —————–>>>");//构建一个索引器,并以文件系统目录为其目标目录IndexWriter fsWriter = new IndexWriter(fsDir, new StandardAnalyzer(), true);System.out.println("创建索引器 2 —————–>>>");//构建一个索引器,,并以内存作为目标路径IndexWriter ramWriter = new IndexWriter(ramDir, new StandardAnalyzer(), true);System.out.println("创建文档 1 和字段————————>>>");//创建第一个文档Document doc1 = new Document();Field bookdNo1 = new Field("booknumber", "BOOKNUM1", Field.Store.YES, Field.Index.UN_TOKENIZED);doc1.add(bookdNo1);System.out.println("创建文档 2 和字段—————–>>>");//创建第二个文档Document doc2 = new Document();Field bookdNo2 = new Field("booknumber", "BOOKNUM2", Field.Store.YES, Field.Index.UN_TOKENIZED);doc1.add(bookdNo2);System.out.println("将第一个文档加入到ram索引的目录中 —————–>>>");//将第一个文档加入内存目录中ramWriter.addDocument(doc1);//关闭ramWriter.close();System.out.println("将第二个文档加入到fs索引的目录中 —————–>>>");//将第二个文档加入到系统磁盘目录中fsWriter.addDocument(doc2);fsWriter.addIndexes(new Directory[]{ramDir});//关闭磁盘索引器fsWriter.close();System.out.println("关闭数据流,程序结束———》》》》");System.out.println("请到目录下查看生成的索引文件 —"+ INDEX_PATH +"————–>>>");}catch(IOException e){e.printStackTrace();}}public static void main(String[] args) {// TODO Auto-generated method stubMergeIndex mi = new MergeIndex();}}

偶尔被惊鸿一瞥的美丽吸引;或者走进一条深沉深沉的巷道,

使用RAMDirectory 和 FSDirectory对于索引创建的优化

相关文章:

你感兴趣的文章:

标签云: