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

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

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

    laoding
    本來我以為,隱身了別人就找不到我,沒有用的,像我這樣拉風的男人,無論走到哪里,都像在黑暗中的螢火蟲一樣,那樣的鮮明,那樣的出眾。我那憂郁的眼神,稀疏的胡茬,那微微隆起的將軍肚和親切的笑容......都深深吸引了眾人......
    posts - 0,  comments - 37,  trackbacks - 0
    因為lucene索引的時候是將String型的信息建立索引的,所以這里必須是將word/pdf/html等文件的內容轉化問字符型。
    lucene的jar包自己去下載。
    首先是建立索引的代碼:

    public class TextFileIndexer {   
        
    public static void main(String[] args) throws Exception {   
            
    /* 指明要索引文件夾的位置,這里是d盤的s文件夾下 */  
            File fileDir 
    = new File("d:\\s");   
      
            
    /* 這里放索引文件的位置 */  
            File indexDir 
    = new File("d:\\index");   
            Analyzer luceneAnalyzer 
    = new StandardAnalyzer();   
            IndexWriter indexWriter 
    = new IndexWriter(indexDir, luceneAnalyzer,   
                    
    true);   
            File[] textFiles 
    = fileDir.listFiles();   
            
    long startTime = new Date().getTime();   
               
            
    //增加document到索引去     
                    System.out.println("File正在被索引.");  
                    
                    
    /*
                     * 注意要變的就是這里,路徑和讀取文件的方法
                     * 
    */
                    String path 
    ="d:\\s\\2.doc";
                    String temp 
    = ReadFile.readWord(path);
    //                String path ="d:\\s\\index.htm"; 
    //                String temp = ReadFile.readHtml(path);
                    Document document = new Document();   
                    Field FieldPath 
    = new Field("path",path, 
                            Field.Store.YES, Field.Index.NO);   
                    Field FieldBody 
    = new Field("body", temp, Field.Store.YES,   
                            Field.Index.TOKENIZED,   
                            Field.TermVector.WITH_POSITIONS_OFFSETS);   
                    document.add(FieldPath);   
                    document.add(FieldBody);   
                    indexWriter.addDocument(document);   
                 
              
            
    //optimize()方法是對索引進行優化   
            indexWriter.optimize();   
            indexWriter.close();   
               
            
    //測試一下索引的時間   
            long endTime = new Date().getTime();   
            System.out   
                    .println(
    "這花費了"  
                            
    + (endTime - startTime)   
                            
    + " 毫秒來把文檔增加到索引里面去!"  
                            
    + fileDir.getPath());   
        }  
     }

    上面已經注釋了要換的地方,我們要做的就是換文件的路徑和讀取文件的方法。

    下面來具體看下讀取文件的方法

    1.首先來看WORD文檔:
    我這里用的是poi,相關jar包自己去下載,然后加到工程中(以下所要用的jar包也是,不再重復說)。

    來看相關代碼:
        public static String readWord(String path) {
            StringBuffer content 
    = new StringBuffer("");// 文檔內容
            try {

                HWPFDocument doc 
    = new HWPFDocument(new FileInputStream(path));
                Range range 
    = doc.getRange();
                
    int paragraphCount = range.numParagraphs();// 段落
                for (int i = 0; i < paragraphCount; i++) {// 遍歷段落讀取數據
                    Paragraph pp = range.getParagraph(i);
                    content.append(pp.text());
                }

            } 
    catch (Exception e) {

            }
            
    return content.toString().trim();
        }

    2.PDF文件用的是PDFbox:

    public static String readPdf(String path) throws Exception {
            StringBuffer content 
    = new StringBuffer("");// 文檔內容
            FileInputStream fis = new FileInputStream(path);
            PDFParser p 
    = new PDFParser(fis);
            p.parse();
            PDFTextStripper ts 
    = new PDFTextStripper();
            content.append(ts.getText(p.getPDDocument()));
            fis.close();
            
    return content.toString().trim();
        }

    3.html文件:

    public static String readHtml(String urlString) {

            StringBuffer content 
    = new StringBuffer("");
            File file 
    = new File(urlString);
            FileInputStream fis 
    = null;
            
    try {
                fis 
    = new FileInputStream(file);
                
    // 讀取頁面
                BufferedReader reader = new BufferedReader(new InputStreamReader(
                        fis,
    "utf-8"));//這里的字符編碼要注意,要對上html頭文件的一致,否則會出亂碼
                
                String line 
    = null;

                
    while ((line = reader.readLine()) != null) {
                    content.append(line 
    + "\n");
                }
                reader.close();
            } 
    catch (Exception e) {
                e.printStackTrace();
            }
            String contentString 
    = content.toString();
            
    return contentString;
        }

    4.txt文件:

    public static String readTxt(String path) {
            StringBuffer content 
    = new StringBuffer("");// 文檔內容
            try {
                FileReader reader 
    = new FileReader(path);
                BufferedReader br 
    = new BufferedReader(reader);
                String s1 
    = null;

                
    while ((s1 = br.readLine()) != null) {
                    content.append(s1 
    + "\r");
                }
                br.close();
                reader.close();
            } 
    catch (IOException e) {
                e.printStackTrace();
            }
            
    return content.toString().trim();
        }

    接下來數搜索代碼:

    public class TestQuery {   
        
    public static void main(String[] args) throws IOException, ParseException {   
            Hits hits 
    = null;   
            
    //搜索內容自己換
            String queryString = "根據國務院的決定";   
            Query query 
    = null;  
            
            IndexSearcher searcher 
    = new IndexSearcher("d:\\index"); //這里注意索引存放的路徑 
      
            Analyzer analyzer 
    = new StandardAnalyzer();   
            
    try {   
                QueryParser qp 
    = new QueryParser("body", analyzer);   
                
    /**
                 * 建索引的時候我們指定了body建立為內容,我們搜索的時候也是針對body的,所以
                 *   QueryParser qp = new QueryParser("body", analyzer); 
                 *   這句和建立索引時候
                    Field FieldBody = new Field("body", temp, Field.Store.YES,   
                            Field.Index.TOKENIZED,   
                            Field.TermVector.WITH_POSITIONS_OFFSETS); 
                 *的這句的"body"是對應的。
                 
    */
                query 
    = qp.parse(queryString);   
            } 
    catch (ParseException e) {
                System.out.println(
    "異常"); 
            }   
            
    if (searcher != null) {   
                hits 
    = searcher.search(query);   
                
    if (hits.length() > 0) {   
                    System.out.println(
    "找到:" + hits.length() + " 個結果!");  
                    
    for (int i = 0; i < hits.length(); i++) {//輸出搜索信息 
                         Document document = hits.doc(i);
                         System.out.println(
    "contents:"+document.get("body"));
                         
    //同樣原理這里的document.get("body")就是取得建立在索引文件里面的額body的所有內容
                         
    //你若想輸出文件路徑就用document.get("path")就可以了
                    }
                } 
    else{
                    System.out.println(
    "0個結果!"); 
                }   
            }  
        } 
    posted on 2008-10-31 19:05 老丁 閱讀(10539) 評論(4)  編輯  收藏 所屬分類: 搜索引擎 lucene

    FeedBack:
    # re: lucene索引word/pdf/html/txt文件及檢索(搜索引擎)[未登錄]
    2012-03-21 09:51 | ZXD
    想問,怎么這篇文章 里面的代碼 不行啊 一直報錯、包都引了啊。。。。  回復  更多評論
      
    # re: lucene索引word/pdf/html/txt文件及檢索(搜索引擎)
    2012-07-23 15:58 |
    為什么自能搜索中文字符串,英文的都不能搜索到  回復  更多評論
      
    # re: lucene索引word/pdf/html/txt文件及檢索(搜索引擎)
    2014-12-10 14:12 | 古城奔馬
    老兄,你用的是哪個版本的jar包?  回復  更多評論
      
    # re: lucene索引word/pdf/html/txt文件及檢索(搜索引擎)
    2016-01-07 10:50 | 大頭頭
    String temp = ReadFile.readWord(path);我想請問一下,這里面的ReadFile是哪個類里的對象啊?需要導入什么樣的jar包嗎?  回復  更多評論
      
    本博客主為學習和復習之用,無關其他,想罵人的繞道
    Email:dkm123456@126.com
    大家一起交流進步
    QQ:283582761


    <2016年1月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    留言簿(4)

    我參與的團隊

    文章分類(50)

    文章檔案(48)

    相冊

    朋友

    搜索

    •  

    積分與排名

    • 積分 - 96446
    • 排名 - 600

    最新評論

    主站蜘蛛池模板: 美女露100%胸无遮挡免费观看| 一区免费在线观看| 牛牛在线精品观看免费正| 一个人免费视频观看在线www | 国产成人免费全部网站| 亚洲综合图色40p| 亚洲中文字幕一二三四区苍井空| 人妻仑乱A级毛片免费看| 免费A级毛片无码A∨免费| 免费在线观看理论片| 久久精品国产亚洲77777| 国产成人亚洲午夜电影| 99re热精品视频国产免费| 亚洲AⅤ优女AV综合久久久| 色拍自拍亚洲综合图区| 日韩成人毛片高清视频免费看| 麻花传媒剧在线mv免费观看| 亚洲不卡AV影片在线播放| 亚洲国产成人资源在线软件 | 三级片免费观看久久| 麻花传媒剧在线mv免费观看| 国产成人精品日本亚洲专区61| 亚洲国产日韩综合久久精品| 免费91麻豆精品国产自产在线观看| 日韩在线a视频免费播放| 久久精品国产亚洲av水果派| 丰满少妇作爱视频免费观看| 日韩毛片免费无码无毒视频观看| 精品国产亚洲一区二区三区 | 我要看WWW免费看插插视频| 亚洲国产精品无码久久一区二区| 国产成人精品久久亚洲高清不卡| 久视频精品免费观看99| 亚洲欧洲日产国码无码久久99| 精品亚洲av无码一区二区柚蜜| 亚洲一级毛片免费看| 亚洲AV无码成人精品区天堂| 国产免费高清69式视频在线观看 | 免费VA在线观看无码| AV免费网址在线观看| 亚洲综合国产精品|