锘??xml version="1.0" encoding="utf-8" standalone="yes"?>97在线超碰,国产精品一区二区a,91国在线观看http://www.aygfsteel.com/hanchul/category/30643.htmlzh-cnSat, 31 May 2008 22:49:12 GMTSat, 31 May 2008 22:49:12 GMT60绱㈠紩璇誨啓鍣╛FSDiractory妯″紡http://www.aygfsteel.com/hanchul/archive/2008/06/01/205117.htmlHanLabHanLabSat, 31 May 2008 21:11:00 GMThttp://www.aygfsteel.com/hanchul/archive/2008/06/01/205117.htmlhttp://www.aygfsteel.com/hanchul/comments/205117.htmlhttp://www.aygfsteel.com/hanchul/archive/2008/06/01/205117.html#Feedback0http://www.aygfsteel.com/hanchul/comments/commentRss/205117.htmlhttp://www.aygfsteel.com/hanchul/services/trackbacks/205117.html 

package indexer;
//package ch2.lucenedemo.process;

import java.io.File;

import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import jeasy.analysis.MMAnalyzer;

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 parameters.Param;
import pretreat.FileControl;

public class IndexOnFS implements IIndexTool{
    
// 鎴愬憳鍙橀噺瀛樺偍鍒涘緩鐨勭儲寮曟枃浠跺瓨鏀劇殑浣嶇疆
    private String INDEX_STORE_PATH = Param.INDEX_STORE_PATH;
        
//寤虹珛绱㈠紩鐨勭洰鏍囨枃浠?/span>
        private String INDEX_WANTED_PATH = "e:\\";
        
//鐩綍鏁扮粍鎬繪暟
        private int NumOfDir = 0;
        
//瀛樻斁鏍圭洰褰曚笅鐨勬墍鏈夊瓙鐩綍
        private ArrayList<String> DirList = new ArrayList<String>();
        
//鍦板潃鏄犲皠
        private Directory dir = null;
        
        
private IndexWriter writer;
        
        
public IndexOnFS(String path){
                
try {
                    dir 
= FSDirectory.getDirectory(INDEX_STORE_PATH);
                } 
catch (IOException ex) {
                    Logger.getLogger(IndexOnFS.
class.getName()).log(Level.SEVERE, null, ex);
                }
                INDEX_WANTED_PATH 
= path;
                makeSegments();
                searchDirectorys(path);
        }

        
//寤虹珛绱㈠紩涔嬪墠閬嶅巻鎵鏈夌洰褰曞茍瀛樻斁錛岃繖鏄負浜嗚繋鍚圛ndexWriter鐨勫悓姝ユ満鍒?/span>
        public void searchDirectorys(String rootDir){
        
                File rootfile 
= new File(rootDir);
                File[] files 
= rootfile.listFiles();
                
if(files!=null)
                
for (int i = 0; i < files.length; i++){
                    
if(files[i].isDirectory()){
                       DirList.add(files[i].getPath());
                       searchDirectorys(files[i].getPath()); 
                    }
                }
        }
        
public void printAllDirectorys(){
                
for(int i = 0;i<DirList.size();i++)
                       System.out.println(DirList.get(i));
        }
        
public void createIndexs() {
                createIndex(INDEX_WANTED_PATH);
                
for(int k = 0;k<DirList.size();k++)
                    createIndex(DirList.get(k));
        }
        
public Document preIndexWrite(File file){
                
// 鍒涘緩涓涓柊鐨凞ocument
            Document doc = new Document();
            
// 鏂囦歡鍚嶅搴旂殑Field
            Field field = new Field("filename", file.getName(), 
                                 Field.Store.YES, Field.Index.TOKENIZED); 
        doc.add(field);
        
// 鏂囦歡鍐呭瀵瑰簲鐨凢iled
        field = new Field("content", FileControl.fileToString(file),//杞埌鎺у埗鍣?/span>
                   Field.Store.NO, Field.Index.TOKENIZED);
        doc.add(field);
                
//鏂囦歡璺緞瀵瑰簲鐨凢iled
                field = new Field("filepath", file.getPath(), 
                           Field.Store.YES, Field.Index.TOKENIZED); 
        doc.add(field);
                
                
return doc;
        }
    
/*鍗曠洰褰曞垱寤虹儲寮?/span>*/
    
public void createIndex(String inputDir) {
        
try {
            
/*MMAnalyzer浣滀負鍒嗚瘝宸ュ叿鍒涘緩涓涓狪ndexWriter*/
                writer 
= new IndexWriter(dir,new MMAnalyzer(), false); /*絎竴嬈″垱寤虹儲寮曟椂涓簍rue*/
            File filesDir 
= new File(inputDir);
            
/*鍙栧緱鎵鏈夐渶瑕佸緩绔嬬儲寮曠殑鏂囦歡鏁扮粍*/
            File[] files 
= filesDir.listFiles();
            
/*閬嶅巻鏁扮粍*/
                        
if(files!=null)
            
for (int i = 0; i < files.length; i++) { 
                              
/*鍒ゆ柇鏄惁涓烘枃浠?/span>*/
                              
if(files[i].isFile()){ 
                    
/*鎶奃ocument鍔犲叆IndexWriter*/
                    writer.addDocument(preIndexWrite(files[i]));  
                                        System.out.println( files[i].getPath());
                        }
                                    } 
                        writer.optimize(); 
/*绱㈠紩浼樺寲*/

        } 
catch (Exception e) { e.printStackTrace(); }
                
                
finally
                    
try{writer.close();
                    }
catch(Exception ee){ ee.printStackTrace(); }
                }

    }
        
//鍒濆鍖栫┖绱㈠紩搴?/span>
        public void makeSegments(){
            
if(new File(INDEX_STORE_PATH).list().length==0){
                
try {
                    IndexWriter iw 
= new IndexWriter(dir, new MMAnalyzer(), true);
                    writer.addDocument(preIndexWrite(
new File(Param.INITFILE_PATH)));
                } 
catch (Exception ex) { ex.printStackTrace(); } 
                
                
finally
                      
try{writer.close();
                      }
catch(Exception ee){ ee.printStackTrace(); }
                  }
            }
        }
        
public ArrayList getDirs(){
            
return this.DirList;
        }
        
        
public void startIndex() {
            makeSegments();
            createIndexs();
        }

    
public static void main(String[] args) {
        IndexOnFS processor 
= new IndexOnFS("e:\\姣曚笟璁烘枃");
                
//processor.searchDirectorys("e:\\1");
                processor.startIndex();
    }


}


HanLab 2008-06-01 05:11 鍙戣〃璇勮
]]>
Lucene婧愮爜緇撴瀯http://www.aygfsteel.com/hanchul/archive/2008/04/06/Lucene.htmlHanLabHanLabSun, 06 Apr 2008 09:02:00 GMThttp://www.aygfsteel.com/hanchul/archive/2008/04/06/Lucene.htmlhttp://www.aygfsteel.com/hanchul/comments/191062.htmlhttp://www.aygfsteel.com/hanchul/archive/2008/04/06/Lucene.html#Feedback0http://www.aygfsteel.com/hanchul/comments/commentRss/191062.htmlhttp://www.aygfsteel.com/hanchul/services/trackbacks/191062.html榪欐槸鎴戝仛姣曚笟璁捐鏃剁敾鐨勶紝鎰熻榪樺彲浠ュ氨鏀捐繃鏉ュ叡浜紝鏈変粈涔堜笉瓚崇殑鍦版柟錛岃澶氭寚鐐廣?br />

鐪婰ucene浠g爜涔熺畻鏄腑浜彈錛屾牴鎹笅鍥懼彲浠ュ厛鐪嬬湅鍏抽敭綾葷殑浠g爜銆?br /> Lucene2.3.1鍙戝竷涓嶄箙錛屾簮浠g爜涓嬭澆鍦板潃錛?a >http://apache.mirror.phpchina.com/lucene/java/


 

 

 org.apache.Lucene.search/

 鎼滅儲鍏ュ彛

 org.apache.Lucene.index/

 绱㈠紩鍏ュ彛

 org.apache.Lucene.analysis/

 璇█鍒嗘瀽鍣?/span>

 org.apache.Lucene.queryParser/

鏌ヨ鍒嗘瀽鍣?/span>

 org.apache.Lucene.document/

 瀛樺偍緇撴瀯

 org.apache.Lucene.store/ 

 搴曞眰IO/瀛樺偍緇撴瀯

 org.apache.Lucene.util/

 涓浜涘叕鐢ㄧ殑鏁版嵁緇撴瀯


 

 



HanLab 2008-04-06 17:02 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 长宁县| 镇雄县| 沐川县| 门头沟区| 且末县| 弥勒县| 阳东县| 环江| 集安市| 苗栗县| 汝南县| 秦皇岛市| 台山市| 天等县| 隆子县| 仁寿县| 彝良县| 安陆市| 绥宁县| 丹东市| 新竹市| 岗巴县| 绍兴县| 绩溪县| 柞水县| 泽库县| 南阳市| 元江| 昌邑市| 富源县| 河曲县| 望谟县| 调兵山市| 比如县| 澎湖县| 乌拉特后旗| 石阡县| 玛多县| 都江堰市| 盱眙县| 临朐县|