首页 »编程综合 » lucene更新索引:lucene 递归索引 »正文
lucene更新索引:lucene 递归索引
来源: 发布时间:星期四, 2009年1月15日 浏览:22次 评论:0
//上个例子中没有递归,这次加上,于是目录 ![](/icons/33042de.gif) 子目录也可以被索引了.所用到 ![](/icons/33042de.gif) 是 ![](/icons/33042yi.gif) 个思路方法: IndexDirectory ![](/icons/33042kh.gif) . /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package yqr.search; import com.leezjs.ChineseSegmenter.ChineseSegmenter; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.Date; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.WhitespaceAnalyzer; 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; /** * * @author yangqr */ public IndexDir { Date start; Date end; String seconds=""; public IndexDir(String src,String index) { //开始建立索引 try { Analyzer analyzer2 = WhitespaceAnalyzer ; Directory directory = FSDirectory.getDirectory(index); IndexWriter iwriter = IndexWriter(directory, analyzer2, true); iwriter. MaxFieldLength(25000); try { start= Date ; File d = File(src); IndexDirectory(d,iwriter); end= Date ; seconds=(end.getTime -start.getTime )+""; } catch (Exception ex) { ex.pr StackTrace ; } iwriter.close ; //建立索引结束 } catch (Exception e) { } } public void IndexDirectory(File dir,IndexWriter iwriter) throws Exception { (dir.isDirectory ) { File files = dir.listFiles ; for ( i = 0; i < files.length; i ) { File cur = files[i]; (cur.isDirectory ) { IndexDirectory(cur,iwriter); } (cur.isFile ) { .out.pr ln("正在索引:" + cur.getAbsolutePath ); FileReader fr = FileReader(cur); BufferedReader br = BufferedReader(fr); String file_content = ""; String line = br.readLine ; file_content line; while (line != null) { line = br.readLine ; file_content line; } Document doc = Document ; ChineseSegmenter cs = ChineseSegmenter.getGBSegmenter ; String keywords = cs.segmentLine(file_content, " "); doc.add( Field("content", file_content, Field.Store.YES, Field.Index.TOKENIZED)); doc.add( Field("keyword", keywords, Field.Store.YES, Field.Index.TOKENIZED)); doc.add( Field("FileName", files[i].getAbsolutePath , Field.Store.YES, Field.Index.TOKENIZED)); iwriter.addDocument(doc); iwriter.optimize ; } } } } public void (String args ) { IndexDir id= IndexDir("F:/sou/index_src","f:/sou/testindex"); String total=id.seconds; .out.pr ln(" 共用了 "+total + " 毫秒"); } }
相关文章
读者评论
发表评论
|
|