RAMDirectory中的内容转到FSDirectory

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.document.Field.Index;

import org.apache.lucene.document.Field.Store;

import org.apache.lucene.index.CorruptIndexException;

import org.apache.lucene.index.IndexWriter;

import org.apache.lucene.index.Term;

import org.apache.lucene.search.Hits;

import org.apache.lucene.search.IndexSearcher;

import org.apache.lucene.search.TermQuery;

import org.apache.lucene.store.Directory;

import org.apache.lucene.store.FSDirectory;

import org.apache.lucene.store.LockObtainFailedException;

import org.apache.lucene.store.RAMDirectory;

 

/**

 * @author Vincnet

 * @version 2.3

 * 

 */

public class Test {

public static void main(String[] args) throws CorruptIndexException,

LockObtainFailedException, IOException {

long data1 = System.currentTimeMillis();

/**

* 分别创建两个对象

* */

FSDirectory fsDir = FSDirectory.getDirectory("E://Lucene//Index2//");

RAMDirectory ramDir = new RAMDirectory();

IndexWriter ramwriter = new IndexWriter(ramDir, new StandardAnalyzer(),true);

IndexWriter fsdwriter = new IndexWriter(fsDir, new StandardAnalyzer(),true);

Document document = new Document();

/**

* Field(String name, String value, Field.Store store, Field.Index index)

         * Create a field by specifying its name, value and how it will be saved in the index.

*

*/

document.add(new Field("name","Vincnet",Store.YES,Index.TOKENIZED));

document.add(new Field("age","18",Store.YES,Index.UN_TOKENIZED));

document.add(new Field("note","this is a test data",Store.YES,Index.TOKENIZED));

ramwriter.addDocument(document);

fsdwriter.addDocument(document);

ramwriter.flush();

//将fsd里面的索引和ram的索引合并成同一个所以 关键一句 

fsdwriter.addIndexes(new Directory[]{ramDir});

ramwriter.close();

fsdwriter.flush();

fsdwriter.close();

IndexSearcher searcher = new IndexSearcher(ramDir);

Hits hits = searcher.search(new TermQuery(new Term("name","vincnet")));

for(int i = 0 ; i < hits.length() ; i++){

System.out.println(hits.length()+"   "+hits.doc(i).get("name"));

}

searcher.close();

System.out.println("运行时间 : "+(System.currentTimeMillis() - data1)+" ms");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值