<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ù)  更多評論
      
    主站蜘蛛池模板: 亚洲国产精品白丝在线观看| 亚洲精品和日本精品| 亚洲天堂中文资源| 免费观看一区二区三区| 亚洲中文字幕日产乱码高清app| eeuss影院免费直达入口| 亚洲中文字幕伊人久久无码| 一级毛片在播放免费| 国产成人精品亚洲精品| 好湿好大好紧好爽免费视频| 亚洲精品国产自在久久| 一级看片免费视频囗交| 国产l精品国产亚洲区在线观看| 国产精品午夜免费观看网站| 亚洲人JIZZ日本人| 国产一区二区免费| 亚洲成人免费网站| 日本免费一区尤物| 伊人久久国产免费观看视频| 亚洲婷婷五月综合狠狠爱| 久久久久久久岛国免费播放| 亚洲国产av高清无码| 日本最新免费不卡二区在线| 特级毛片免费播放| 久久久久久久综合日本亚洲| 中文免费观看视频网站| 国产青草亚洲香蕉精品久久| 亚洲精品国精品久久99热一| 1000部无遮挡拍拍拍免费视频观看| 亚洲人成网站在线观看播放青青| 女性自慰aⅴ片高清免费| 无码 免费 国产在线观看91| 久久91亚洲精品中文字幕| 少妇高潮太爽了在线观看免费| 国产精品亚洲一区二区三区久久| 亚洲一区二区女搞男| 成人免费AA片在线观看| 羞羞网站在线免费观看| 久久久久亚洲AV成人无码| 浮力影院第一页小视频国产在线观看免费 | 美女被吸屁股免费网站|