Lucene-indexWriter

/**
 * 1、索引库的增、删、改是由indexWriter来操作的
 * 2、同一个时刻内,同一个索引库,只能允许一个indexWriter操作
 * 3、当IndexWriter创建完成以后,indexwriter所指向的索引库就被占领了,只有当indexWriter.close时,才能释放锁的资源
 * 4、当一个新的indexWriter想拥有索引库时,原来的indexWriter必须释放锁
 * 5、只要索引库中存在write.lock文件,说明上锁了
 * 6、indexWriter.close有两层含义:
 *     *  关闭IO资源
 *     *  释放锁
 * @author Administrator
 *
 */
public class IndexWriterTest {
	@Test
	public void testIndexWriter() throws Exception{
		IndexWriter indexWriter = new IndexWriter(LuceneUtils.directory,LuceneUtils.analyzer,MaxFieldLength.LIMITED);
		indexWriter.close();//这里不关闭 就不能再次开启indexWriter
		IndexWriter indexWriter2 = new IndexWriter(LuceneUtils.directory,LuceneUtils.analyzer,MaxFieldLength.LIMITED);
	}
}

1.   索引库的优化

当执行创建索引多次时,索引库的文件如图所示:(索引里内容是一样的)

结论:如果增加、删除反复操作很多次,就会造成文件大量增加,这样检索的速度也会下降,所以我们有必要去优化索引结构。使文件的结构发生改变从而提高效率。


public class OptimizeTest {
	@Test
	public void testOptimize() throws Exception{
		IndexWriter indexWriter = new IndexWriter(LuceneUtils.directory,LuceneUtils.analyzer,MaxFieldLength.LIMITED);
		indexWriter.optimize();//这个方法 优化
		indexWriter.close();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值