1 package com.home.utils; 2 3 import org.apache.lucene.index.IndexWriter; 4 import org.apache.lucene.index.IndexWriter.MaxFieldLength; 5 import org.junit.Test; 6 7 public class IndexWriterTest { 8 9 /** 10 * 1、索引库的增、删、改是由indexWriter来操作的 11 * 2、同一个时刻内,同一个索引库,只能允许一个indexWriter操作 12 * 3、当IndexWriter创建完成以后,indexwriter所指向的索引库就被占领了,只有当indexWriter.close时,才能释放锁的资源 13 * 4、当一个新的indexWriter想拥有索引库时,原来的indexWriter必须释放锁 14 * 5、只要索引库中存在write.lock文件,说明上锁了 15 * 6、indexWriter.close有两层含义: 16 * * 关闭IO资源 17 * * 释放锁 18 * @author Administrator 19 * 20 */ 21 @Test 22 public void testIndexWriter() throws Exception { 23 IndexWriter indexWriter = new IndexWriter(LuceneUtils.directory,LuceneUtils.analyzer,MaxFieldLength.LIMITED); 24 indexWriter.close();//这里不关闭 就不能再次开启indexWriter 25 IndexWriter indexWriter2 = new IndexWriter(LuceneUtils.directory,LuceneUtils.analyzer,MaxFieldLength.LIMITED); 26 } 27 /** 28 * 1. 索引库的优化 29 30 当执行创建索引多次时,索引库的文件如图所示:(索引里内容是一样的) 31 32 结论:如果增加、删除反复操作很多次,就会造成文件大量增加,这样检索的速度也会下降,所以我们有必要去优化索引结构。使文件的结构发生改变从而提高效率。 33 * @throws Exception 34 */ 35 @Test 36 public void testOptimize() throws Exception{ 37 IndexWriter indexWriter = new IndexWriter(LuceneUtils.directory,LuceneUtils.analyzer,MaxFieldLength.LIMITED); 38 indexWriter.optimize();//这个方法 优化 39 indexWriter.close(); 40 } 41 }
浙公网安备 33010602011771号