运行webapp程序的时候,首先要从原有索引库中读取FSDirectory到RAMDirectory,使检索的时候速度快点,当检索完之后,需要将更新后的RAMDirectory合并到当前索引库当中(addIndexesNoOptimize)。
Directory fsdir = FSDirectory.getDirectory(indexpath);//物理文件,关闭后存在 Directory ramdir = new RAMDirectory(fsdir);//缓存文件,速度快,但无法持久保存 //启动时读取FSDirectory到RAMDirectory中 IndexWriter ramiw = new IndexWriter(ramdir,a,MaxFieldLength.LIMITED); ramiw.addDocument(doc); ramiw.close(); //读取RAMDirectory到FSDirectory中,保存在索引库中 IndexWriter fsiw = new IndexWriter(fsdir,a,true,MaxFieldLength.LIMITED); fsiw.addIndexesNoOptimize(new Directory[]{ramdir}); fsiw.close();