<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年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

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

    常用鏈接

    留言簿(4)

    隨筆分類(lèi)(12)

    隨筆檔案(17)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 51840
    • 排名 - 961

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

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

          對(duì)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("開(kāi)始索引時(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//對(duì)中文建立解析(必須)
    29        QueryParser parser=new QueryParser("Title",new ChineseAnalyzer());
    30        Query query=parser.parse("李湘");
    31        
    32        Date startDate=new Date();
    33        System.out.println("檢索開(kāi)始時(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)測(cè)試,建立索引文件大概花了11分鐘。一般情況下,和用SQL執(zhí)行LIKE查詢(xún)差不多。

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

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

    FeedBack:
    # re: Lucene數(shù)據(jù)索引搜索示例[未登錄](méi) 2007-05-01 01:05 菜鳥(niǎo)
    嗯 最近工作開(kāi)始涉及到搜索引擎一塊 一起努力~~!  回復(fù)  更多評(píng)論
      
    # re: Lucene數(shù)據(jù)索引搜索示例 2007-06-11 11:22 azmo
    加油。。。我也加入lucene的研究軍團(tuán),呵呵  回復(fù)  更多評(píng)論
      
    # re: Lucene數(shù)據(jù)索引搜索示例 2007-07-02 09:41 風(fēng)舞者
    不錯(cuò),我收了啊,哈哈。。。  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲成AV人影片在线观看| 日韩久久无码免费毛片软件| 久久毛片免费看一区二区三区| 99久久久精品免费观看国产| 亚洲精品国产va在线观看蜜芽| 亚洲码在线中文在线观看| 一区二区三区视频免费观看| 成人免费777777| 亚洲成熟xxxxx电影| 青青草97国产精品免费观看 | 免费看a级黄色片| 亚洲国产精品久久| 九九免费久久这里有精品23| 成人免费午间影院在线观看| 亚洲精品第五页中文字幕| WWW免费视频在线观看播放 | 亚洲激情电影在线| 国产在线观看无码免费视频| 免费午夜爽爽爽WWW视频十八禁| 亚洲视频无码高清在线| 99re免费99re在线视频手机版| 中文字幕精品亚洲无线码二区 | 亚洲色大情网站www| 精品国产免费人成电影在线观看| 亚洲精品无码午夜福利中文字幕 | 亚洲精品无码日韩国产不卡?V| 亚洲国产精品网站在线播放 | 国产精品免费观看| 亚洲综合自拍成人| 一个人免费视频观看在线www| 亚洲午夜无码久久久久| 一区免费在线观看| 免费v片视频在线观看视频| 亚洲国产成人手机在线观看| 最近2019中文字幕免费看最新| 亚洲免费在线视频播放| 色片在线免费观看| 亚洲精品福利网泷泽萝拉| 日韩精品内射视频免费观看| 久久亚洲伊人中字综合精品| 免费av片在线观看网站|