<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 17  文章 - 84  trackbacks - 0
    <2007年4月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    如非特別說明,所有文章均為原創(chuàng)。如需引用,請注明出處
    Email:liangtianyu@gmail.com
    MSN:terry.liangtianyu@hotmail.com

    常用鏈接

    留言簿(4)

    隨筆分類(12)

    隨筆檔案(17)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 51840
    • 排名 - 961

    最新評論

    閱讀排行榜

    評論排行榜

          平臺:Lucene 2.1.0,JRE 1.4,Oracle 10g,IBM Web Sphere。
          數(shù)據(jù)表:Article。字段:ID(自動增長),Title(String),Content(String)。共有550000條記錄。

          對Article建立索引:
     1import org.apache.lucene.analysis.*;
     2import org.apache.lucene.analysis.cn.*;
     3import org.apache.lucene.document.*;
     4import org.apache.lucene.index.*;
     5import java.sql.*;
     6import oracle.jdbc.pool.*;
     7
     8public class Index {
     9    private String url="jdbc:oracle:thin:@//192.168.0.l:1521/Test";
    10    private String user="terry";
    11    private String password="dev";
    12    private Connection con=null;
    13    private Statement st=null;
    14    private ResultSet rs=null;
    15    private String indexUrl="E:\\ArticleIndex";
    16    
    17    private ResultSet getResult() throws Exception{
    18        OracleDataSource ods=new OracleDataSource();
    19        
    20        ods.setURL(this.url);
    21        ods.setUser(this.user);
    22        ods.setPassword(this.password);
    23        
    24        this.con=ods.getConnection();
    25        this.st=this.con.createStatement();
    26        this.rs=this.st.executeQuery("SELECT * FROM Article");
    27        
    28        return this.rs;
    29    }

    30    
    31    public void createIndex() throws Exception{
    32        ResultSet rs=this.getResult();
    33        
    34        Analyzer chineseAnalyzer=new ChineseAnalyzer();
    35        IndexWriter indexWriter=new IndexWriter(this.indexUrl,chineseAnalyzer,true);
    36        indexWriter.setMergeFactor(100);
    37        indexWriter.setMaxBufferedDocs(100);
    38        
    39        java.util.Date startDate=new java.util.Date();
    40        
    41        System.out.println("開始索引時(shí)間:"+startDate);
    42        
    43        executeIndex(rs,indexWriter);
    44        
    45        indexWriter.optimize();
    46        
    47        indexWriter.close();
    48
    49        java.util.Date endDate=new java.util.Date();
    50        
    51        System.out.println("索引結(jié)束時(shí)間:"+endDate);
    52        System.out.println("共花費(fèi):"+(endDate.getTime()-startDate.getTime())+"ms");
    53    }

    54    
    55    private void executeIndex(ResultSet rs,IndexWriter indexWriter) throws Exception{
    56        int i=0;
    57        
    58        while(rs.next()){
    59            int id=rs.getInt("ID");
    60            String title=rs.getString("TITLE");
    61            String info=rs.getString("CONTENT");
    62            
    63            Document doc=new Document();
    64            
    65            Field idField=new Field("ID",Integer.toString(id),Field.Store.YES,Field.Index.NO,Field.TermVector.NO);
    66            Field titleField=new Field("Title",title,Field.Store.YES,Field.Index.TOKENIZED,Field.TermVector.YES);
    67            Field infoField=new Field("Content",title,Field.Store.YES,Field.Index.TOKENIZED,Field.TermVector.YES);
    68            
    69            doc.add(idField);
    70            doc.add(titleField);
    71            doc.add(infoField);
    72            
    73            indexWriter.addDocument(doc);
    74            
    75            i++;
    76        }

    77        
    78        this.close();
    79        
    80        System.out.println("共處理記錄:"+i);
    81    }

    82    
    83    private void close() throws Exception{
    84        this.rs.close();
    85        this.st.close();
    86        this.con.close();
    87    }

    88}

          查找:
     
     1import java.io.*;
     2import org.apache.lucene.analysis.cn.*;
     3import org.apache.lucene.search.*;
     4import org.apache.lucene.store.*;
     5import org.apache.lucene.document.*;
     6import org.apache.lucene.queryParser.QueryParser;
     7
     8import java.util.*;
     9
    10public class Search {
    11    
    12    private static final String indexUrl="E:\\ArticleIndex";
    13    
    14    public static void main(String[] args) throws Exception {
    15/*建立索引代碼,查找時(shí)注釋*/
    16        //Index index=new Index();
    17        
    18        //index.createIndex();
    19        
    20        
    21        
    22        
    23        File indexDir=new File(indexUrl);
    24        FSDirectory fdir=FSDirectory.getDirectory(indexDir);
    25        
    26        IndexSearcher searcher=new IndexSearcher(fdir);
    27
    28//對中文建立解析(必須)
    29        QueryParser parser=new QueryParser("Title",new ChineseAnalyzer());
    30        Query query=parser.parse("李湘");
    31        
    32        Date startDate=new Date();
    33        System.out.println("檢索開始時(shí)間:"+startDate);
    34        
    35        Hits result=searcher.search(query);
    36        
    37        for(int i=0;i<result.length();i++){
    38            Document doc=result.doc(i);
    39            
    40            System.out.println("內(nèi)容:"+doc.get("Content"));
    41        }

    42        
    43        Date endDate=new Date();
    44        
    45        System.out.println("共有記錄:"+result.length());
    46        System.out.println("共花費(fèi):"+(endDate.getTime()-startDate.getTime()));
    47    }

    48
    49}


          經(jīng)測試,建立索引文件大概花了11分鐘。一般情況下,和用SQL執(zhí)行LIKE查詢差不多。

          當(dāng)然,這只是我的粗略測試。最近一階段,我會對Lucene進(jìn)行代碼深入研究。

    posted on 2007-04-30 16:43 Terry Liang 閱讀(2144) 評論(3)  編輯  收藏 所屬分類: Lucene 2.1研究

    FeedBack:
    # re: Lucene數(shù)據(jù)索引搜索示例[未登錄] 2007-05-01 01:05 菜鳥
    嗯 最近工作開始涉及到搜索引擎一塊 一起努力~~!  回復(fù)  更多評論
      
    # re: Lucene數(shù)據(jù)索引搜索示例 2007-06-11 11:22 azmo
    加油。。。我也加入lucene的研究軍團(tuán),呵呵  回復(fù)  更多評論
      
    # re: Lucene數(shù)據(jù)索引搜索示例 2007-07-02 09:41 風(fēng)舞者
    不錯(cuò),我收了啊,哈哈。。。  回復(fù)  更多評論
      
    主站蜘蛛池模板: 亚洲AV无码一区二区乱孑伦AS| 欧洲亚洲国产清在高| 亚洲精品视频免费| 亚洲精品亚洲人成人网| 亚洲五月六月丁香激情| 亚洲五月综合网色九月色| 亚洲精品av无码喷奶水糖心| 无码免费又爽又高潮喷水的视频| 国产线视频精品免费观看视频| 91精品国产免费网站| 一色屋成人免费精品网站| 免费成人av电影| 亚洲第一精品在线视频| 亚洲乱人伦中文字幕无码| 51午夜精品免费视频| jjizz全部免费看片| 午夜国产大片免费观看| 久久亚洲精品无码| 亚洲精品国产摄像头| a在线免费观看视频| 免费可以在线看A∨网站| 精品亚洲视频在线观看| 亚洲综合激情另类小说区| 国产成人亚洲精品电影| 久久国产精品免费看| 四虎成人精品一区二区免费网站| 中文字幕专区在线亚洲| 91在线亚洲综合在线| 丝袜捆绑调教视频免费区| 久久不见久久见免费影院| 最新国产AV无码专区亚洲| 欧洲 亚洲 国产图片综合| 97国免费在线视频| 成人au免费视频影院| 亚洲成色WWW久久网站| 亚洲经典千人经典日产| 久久国产乱子伦精品免费一| 国产传媒在线观看视频免费观看| 亚洲欧洲日产国产综合网| 四虎影视久久久免费观看| 成年在线观看网站免费|