Lucene学习笔记之创建Drectory

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;

import junit.framework.TestCase;

public class testDirectory extends TestCase {

	String path = "./index";

	public void test() throws Exception {

		Directory fsDir = FSDirectory.getDirectory(path);
		Directory ramDir = new RAMDirectory();
		IndexWriter ramWrite = new IndexWriter(ramDir, new StandardAnalyzer(),
				true, IndexWriter.MaxFieldLength.UNLIMITED);
		IndexWriter fsWrite = new IndexWriter(fsDir, new StandardAnalyzer(),
				true, IndexWriter.MaxFieldLength.UNLIMITED);

		// 可以把一批建立索引的操作在内存中进行,避免频繁的IO操作建立索引
		Document doc = new Document();
		doc.add(new Field("id", "001", Field.Store.YES,
				Field.Index.NOT_ANALYZED));
		doc.add(new Field("content", "what are you doning", Field.Store.NO,
				Field.Index.ANALYZED));
		ramWrite.addDocument(doc);
		// 必须要先关闭才能调用addIndexesNoOptimize方法把ramDir参数传入
		ramWrite.close();
		// 调用addIndexesNoOptimize方法把索引加到IndexWriter
		fsWrite.addIndexesNoOptimize(new Directory[] { ramDir });
		// 最后不要忘记关闭IndexWriter释放write.lock,把索引写入磁盘
		fsWrite.close();

	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值