![]() |
|
考试大java站整理:
网上流行的lucene使用方法大部分是lucene1.4左右,而现在的lucene已经到了2.x,以下是lucene2.2.0的事例
1.像往常的框架一样,自然需要将其所需的jar包导入
导入lucene-core-2.2.0.jar(最新的jar)
//-----------------------------
2.创建索引(Index)
public void createIndex(){
File indexDir=new File("f:/lucene/"); //将索引写入到"f:/lucene/"下;
long start=new Date().getTime();
StandardAnalyzer sa=new StandardAnalyzer(); //创建标准分析器
try {
IndexWriter indexWriter=new IndexWriter(indexDir,sa,true); //需要Index写入器,(创建)
indexWriter.setMergeFactor(100);
indexWriter.setMaxMergeDocs(100);
indexWriter.setMaxFieldLength(5000);
while(rs.next()){
Document doc=new Document(); //创建文档(document)对象,rs是recordset对象,事先已经从数据库取出!
doc.add(new Field("productName",rs.getString("productName"),Field.Store.YES,Field.Index.TOKENIZED)); //为document添加好field
doc.add(new Field("unitprice",rs.getString("unitprice"),Field.Store.YES,Field.Index.TOKENIZED));
indexWriter.addDocument(doc); //别忘记,将document加到写入器indexWriter
}
indexWriter.optimize(); //进行优化
indexWriter.close();//关闭
} catch (CorruptIndexException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (LockObtainFailedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long end=new Date().getTime();
System.out.println("索引创建完毕,用时:"+(end-start)+"毫秒");
}
//----------------------------------- 转贴于:Java认证考试_考试大