葉明的javablog

          java學習天堂,個人關于其他blog:blog.javaworker.cn,歡迎大家訪問
          posts - 64, comments - 50, trackbacks - 0, articles - 3

          Lucene(2.4.1)技術研究(1)--lucene技術

          Posted on 2009-03-27 13:18 天空蒼茫 閱讀(919) 評論(1)  編輯  收藏 所屬分類: java知識
          1、lucene是apache下的一個開源框架,主要使用于處理大量資源全文搜索的時間使用的工具。從其官方網(wǎng)站定義為:Apache的Lucene的是一種基于java語言開發(fā)的、高性能、跨平臺、幾乎適用于任何程序的全文搜索引擎。并且apache的Lucenea是完全開源的。當前最新版本是2.4.1。

          下邊我們首先看一個簡單的Lucene的例子。

          package com.ikdy.yeming;

          import net.paoding.analysis.analyzer.PaodingAnalyzer;

          import org.apache.lucene.document.Document;
          import org.apache.lucene.document.Field;
          import org.apache.lucene.index.IndexReader;
          import org.apache.lucene.index.IndexWriter;
          import org.apache.lucene.queryParser.QueryParser;
          import org.apache.lucene.search.IndexSearcher;
          import org.apache.lucene.search.Query;
          import org.apache.lucene.search.ScoreDoc;
          import org.apache.lucene.search.TopDocCollector;

          public class IndexFileTest {
           
           public static final String INDEX_FILE_PATH = "D:/web/indexFile";
           
           public static void main(String[] args) throws Exception{
            
            
            IndexWriter write = new IndexWriter(INDEX_FILE_PATH,new PaodingAnalyzer(),true,IndexWriter.MaxFieldLength.LIMITED);
            write.setUseCompoundFile(false);
            Document doc = new Document();
            Document doc1 = new Document();
            Document doc2 = new Document();
            Document doc3 = new Document();
            Document doc4 = new Document();
            Document doc5 = new Document();
            Document doc6 = new Document();
            Document doc7 = new Document();
            Document doc8 = new Document();
            
            Field file = new Field("bookname"," 本報感城3月25日電 (記者梁振君 特約記者卞王玉玨)東方市感城鎮(zhèn)“3·23”事件今天出現(xiàn)反彈。中午11時半,該鎮(zhèn)感城村和寶上村村民各500人左右分別聚集在感恩橋附近,約1小時后雙方發(fā)生小規(guī)模沖突,當場造成3名村民不同程度受傷,其中1名傷者送往醫(yī)院搶救無效死亡,死者為寶上村村民。當?shù)卦S多村民痛心地表示,大家同居一地同飲一江水,應該和睦相處。希望雙方立即停止對彼此的傷害,不再讓悲劇繼續(xù)發(fā)生。",Field.Store.YES,Field.Index.ANALYZED);
            Field file1 = new Field("bookname","從昨天凌晨1時許直至今天中午11時許,經(jīng)過東方市委、市政府及省公安廳、邊防總隊等各方努力,感城鎮(zhèn)的秩序已趨穩(wěn)定,事態(tài)基本平息。今天上午10時許,海南日報記者驅車來到感城鎮(zhèn)政府所在地和感城村,一路上看到載客中巴車、三輪摩托車暢行無阻,鎮(zhèn)上的店鋪照常開門營業(yè),當?shù)厝罕娮诘缆穬蓚群炔栝e聊。",Field.Store.YES,Field.Index.ANALYZED);
            Field file2= new Field("bookname","中午11時半左右,一輛感城村的私人小貨車在寶上村出口處被該村部分村民攔截并燒毀,由此引發(fā)寶上村和感城村重新發(fā)生對峙,并造成沖突。幸虧警方及時處置,使得沖突沒有擴大化。截至今晚10時許,局面初步得到控制,聚集村民均已散去,警方仍在兩村之間巡防",Field.Store.YES,Field.Index.ANALYZED);
            Field file3 = new Field("bookname","“3·23”事件發(fā)生后,省委、省政府高度重視,省委書記衛(wèi)留成、省長羅保銘分別作出重要批示。省委常委、政法委書記肖若海今天下午趕到感城鎮(zhèn)現(xiàn)場指揮。事件發(fā)生以來,東方市委書記王河山、市長譚燈耀一直堅持在一線指揮,積極會同有關各方想方設法開展穩(wěn)控工作平息事態(tài)。",Field.Store.YES,Field.Index.ANALYZED);
            Field file4 = new Field("bookname","針對事件發(fā)展態(tài)勢,省委政法委、省公安廳、東方市等有關各方在繼續(xù)組織大批干部進村入戶做好涉事村莊村民的思想教育工作,同時采取多種手段對村民開展法制宣傳;積極做好死者家屬善后工作,并要求醫(yī)院全力搶救傷者;加大案件偵破力度,同時組織警力做好必要的防控工作。",Field.Store.YES,Field.Index.ANALYZED);
            Field file5 = new Field("bookname","事件發(fā)生后,焦作市委專門召開會議,成立調查組對媒體反映的情況進行了全面調查。根據(jù)調查結果,焦作市委、市政府嚴肅處理了相關責任人,并要求暢通渠道,廣開言路,接受群眾監(jiān)督,堅持為民創(chuàng)建,科學創(chuàng)建,繼續(xù)深入開展創(chuàng)建國家衛(wèi)生城市活動。鑒于此事件已對全國創(chuàng)建衛(wèi)生城市工作造成不良影響,為保證創(chuàng)建國家衛(wèi)生城市工作的公正性和嚴肅性,全國愛衛(wèi)辦決定",Field.Store.YES,Field.Index.ANALYZED);
            Field file6 = new Field("bookname","來到柜臺后,“白夾克”聲稱準備結婚,提出要買一枚1克拉的鉆戒。眼看來了大顧客,營業(yè)員耐心地為兩人挑選鉆石。兩人先是選中一款11萬元的鉆戒,隨后“白夾克”又看中旁邊一顆標價為33萬元的裸鉆。",Field.Store.YES,Field.Index.ANALYZED);
            Field file7 = new Field("bookname","“黑西裝”直奔克拉廳的柜臺前,稱要買之前看中的33萬元的裸鉆。得知是前一天預約的顧客后,營業(yè)員頓時興高采烈地拿出了裸鉆。“黑西裝”取出了自帶的放大鏡,還拿出了一個鑷子,仔細觀察鉆石的成色。大約10分鐘后,“黑西裝”查看結束,將裸鉆還給營業(yè)員,表示十分滿意,提出1小時后來取貨。在“黑西裝”查看裸鉆的時候,“白夾克”并未湊過來,而是在旁邊挑選其他飾品。",Field.Store.YES,Field.Index.ANALYZED);
            Field file8 = new Field("bookname","24日早晨,民警追查到,這3人目前正住在閔行區(qū)金匯路頤美庭園酒店內。當天下午3點半左右,民警在306房間內將“黑西裝”李銀林和“白夾克”萬堯榮等3人抓獲。此時距離鉆石被盜僅24個小時。經(jīng)審問,李銀林在拿鑷子查看裸鉆時,曾利用營業(yè)員低頭的一剎那,伸手摸了摸自己的褲子口袋———短短幾秒鐘的時間,他便完成了調包。",Field.Store.YES,Field.Index.ANALYZED);

            
            doc.add(file);
            doc1.add(file1);
            doc2.add(file2);
            doc3.add(file3);
            doc4.add(file4);
            doc5.add(file5);
            doc6.add(file6);
            doc7.add(file7);
            doc8.add(file8);
            
            write.addDocument(doc);
            write.addDocument(doc1);
            write.addDocument(doc2);
            write.addDocument(doc3);
            write.addDocument(doc4);
            write.addDocument(doc5);
            write.addDocument(doc6);
            write.addDocument(doc7);
            write.addDocument(doc8);
            
            write.close();
            
            
            try {
             
             IndexReader reader = IndexReader.open(INDEX_FILE_PATH);
             
             IndexSearcher search = new IndexSearcher(reader);
             
             QueryParser parser = new QueryParser("bookname", new PaodingAnalyzer());
             
             Query query =parser.parse("“黑西裝”");
             
             TopDocCollector collector = new TopDocCollector(10);  
             search.search(query,collector);
                ScoreDoc[] hits = collector.topDocs().scoreDocs;
                int numTotalHits = collector.getTotalHits();
                System.out.println("所有的暫時:"+numTotalHits);
                //int start=1;
               // int sEnd=3;
                for(int i=0;i<numTotalHits;i++){
                 doc = search.doc(hits[i].doc);
                 System.out.println(doc);
                }
             
             /*Hits hit = search.search(query);
             for(int i=0;i<hit.length();i++){
              System.out.println(hit.doc(i));
             }*/
            } catch (Exception e) {
             e.printStackTrace();
            }
            
           }

          }

          所有的暫時:2
          Document<stored/uncompressed,indexed,tokenized<bookname:“黑西裝”直奔克拉廳的柜臺前,稱要買之前看中的33萬元的裸鉆。得知是前一天預約的顧客后,營業(yè)員頓時興高采烈地拿出了裸鉆。“黑西裝”取出了自帶的放大鏡,還拿出了一個鑷子,仔細觀察鉆石的成色。大約10分鐘后,“黑西裝”查看結束,將裸鉆還給營業(yè)員,表示十分滿意,提出1小時后來取貨。在“黑西裝”查看裸鉆的時候,“白夾克”并未湊過來,而是在旁邊挑選其他飾品。>>
          Document<stored/uncompressed,indexed,tokenized<bookname:24日早晨,民警追查到,這3人目前正住在閔行區(qū)金匯路頤美庭園酒店內。當天下午3點半左右,民警在306房間內將“黑西裝”李銀林和“白夾克”萬堯榮等3人抓獲。此時距離鉆石被盜僅24個小時。經(jīng)審問,李銀林在拿鑷子查看裸鉆時,曾利用營業(yè)員低頭的一剎那,伸手摸了摸自己的褲子口袋———短短幾秒鐘的時間,他便完成了調包。>>

          注釋:本文使用的中文分詞:庖丁解牛(我將在下一篇日志中去分析)

          Feedback

          # re: Lucene(2.4.1)技術研究(1)--lucene技術  回復  更多評論   

          2009-04-16 23:40 by 心夢帆影
          嗯,不錯不錯.支持一下.很想學一下這個Lucene.
          主站蜘蛛池模板: 花垣县| 罗山县| 青冈县| 彩票| 大洼县| 泾源县| 卫辉市| 都安| 珲春市| 龙川县| 同德县| 三都| 太白县| 黄龙县| 天峨县| 紫金县| 上虞市| 砀山县| 萝北县| 阿图什市| 北川| 章丘市| 社会| 万源市| 余姚市| 邢台市| 五华县| 视频| 彝良县| 诸暨市| 六枝特区| 宁阳县| 新丰县| 尼勒克县| 三门县| 天台县| 浦江县| 安溪县| 新安县| 中牟县| 龙游县|