DANCE WITH JAVA

          開發出高質量的系統

          常用鏈接

          統計

          積分與排名

          好友之家

          最新評論

          lucene 索引非txt文檔 (pdf word rtf html xml)

          搜索要首先要索引,索引的話最簡單的方式是索引txt文件,上文已經介紹了。這里介紹一下一些其它格式的文檔的索引,例如ms word ,pdf ,rtf等。
          索引方法:就是先把各種文檔先轉化成純文本再索引,所以關鍵在轉換上。幸好java世界中有太多的開源工程,很多都可以拿來直接使用。下邊分別介紹一下:
          寫在所有之前:下邊所有介紹中的is參數都是inputStream,就是被索引的文件。
          word文檔:
          把word文檔轉換成純文本的開源工程可以使用:POI 或者TextMining
          POI的使用方法:
           WordDocument wd = new WordDocument(is);
                StringWriter docTextWriter 
          = new StringWriter();
                wd.writeAllText(
          new PrintWriter(docTextWriter));
                docTextWriter.close();
                bodyText 
          = docTextWriter.toString();
          TextMining的使用方法更簡單:
          bodyText = new WordExtractor().extractText(is);

          PDF文檔:
          轉換PDF文檔可以使用的類庫是PDFbox
          COSDocument cosDoc = null;
             PDFParser parser = new PDFParser(is);
              parser.parse();
          cosDoc 
          = parser.getDocument()
          if (cosDoc.isEncrypted()) {
                  DecryptDocument decryptor 
          = new DecryptDocument(cosDoc);
                  decryptor.decryptDocument(password);
           }
          PDFTextStripper stripper 
          = new PDFTextStripper();
          String docText 
          = stripper.getText(new PDDocument(cosDoc));
          RTF文檔:
          rtf的轉換則在javax中就有
          DefaultStyledDocument styledDoc = new DefaultStyledDocument();
          new RTFEditorKit().read(is, styledDoc, 0);
                String bodyText 
          = styledDoc.getText(0, styledDoc.getLength());
          這樣就可以索引各種格式的文本了

          html和xml的處理方法同樣
          不同的是html的可用類庫是:JTidy
          Xml可用的類庫是SAX和digester

          posted on 2007-06-14 13:27 dreamstone 閱讀(8010) 評論(9)  編輯  收藏 所屬分類: 搜索引擎lucence

          評論

          # re: lucene 索引非txt文檔 (pdf word rtf html xml) 2007-08-08 17:31 123

          不支持中文......  回復  更多評論   

          # re: lucene 索引非txt文檔 (pdf word rtf html xml) 2008-01-03 18:10 qq307059755

          上述代碼是否有誤?
          運行到
          String docText = stripper.getText(new PDDocument(cosDoc));
          時報:
          正在索引: C:\word\source\基于內容的圖像檢索研究進展.pdf 文件

          Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/fontbox/cmap/CMapParser

          at org.pdfbox.pdmodel.font.PDFont.parseCmap(PDFont.java:534)

          at org.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:412)

          at org.pdfbox.util.PDFStreamEngine.showString(PDFStreamEngine.java:325)

          at org.pdfbox.util.operator.ShowTextGlyph.process(ShowTextGlyph.java:80)

          at org.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:452)

          at org.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:215)

          at org.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:174)

          at org.pdfbox.util.PDFTextStripper.processPage(PDFTextStripper.java:336)

          at org.pdfbox.util.PDFTextStripper.processPages(PDFTextStripper.java:259)

          at org.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:216)

          at org.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:149)

          at textsearch.TextSearchFrame.indexFile(TextSearchFrame.java:235)
          ..........  回復  更多評論   

          # re: lucene 索引非txt文檔 (pdf word rtf html xml) 2008-01-03 19:57 qq307059755

          問題已解決:在下載的pdfbox包中包括org.fontbox.cmap.CMapParser 類  回復  更多評論   

          # re: lucene 索引非txt文檔 (pdf word rtf html xml) 2008-07-01 11:33 wrj

          需要包更多的jar包,根據提示的類在包的整個目錄下找需要的包,如搜CMapParser ,會搜出一個jar包,將其引入你的應用即可!  回復  更多評論   

          # re: lucene 索引非txt文檔 (pdf word rtf html xml) 2008-07-23 17:18

          是嗎,我下的所有pdfbox里面都沒有那個類,是那個事嗎?@qq307059755
            回復  更多評論   

          # re: lucene 索引非txt文檔 (pdf word rtf html xml)[未登錄] 2008-09-09 11:19 hp

          org.fontbox.cmap.CMapParser 這個類;我也沒有找到;怎么回事?。桓呤种更c一下??;我的也報這個錯誤??;  回復  更多評論   

          # re: lucene 索引非txt文檔 (pdf word rtf html xml) 2010-02-25 11:10 shusnail

          我也報這個錯  回復  更多評論   

          # re: lucene 索引非txt文檔 (pdf word rtf html xml) 2011-07-29 11:04 拉面tina

          如果是中文的要怎么檢索啊,用的是lucene2.0.0,O(∩_∩)O  回復  更多評論   

          # re: lucene 索引非txt文檔 (pdf word rtf html xml) 2014-03-13 22:13 第三方第三方

          打發第三方的說法是打發的撒  回復  更多評論   

          主站蜘蛛池模板: 铜鼓县| 漾濞| 凉山| 盐城市| 兴化市| 孟连| 马鞍山市| 临江市| 客服| 峡江县| 德保县| 泊头市| 左云县| 旌德县| 成武县| 姚安县| 海盐县| 池州市| 临邑县| 响水县| 嘉定区| 定西市| 都兰县| 灵宝市| 阿拉善左旗| 桦川县| 方城县| 麻阳| 镇安县| 五莲县| 绥棱县| 尉犁县| 威海市| 青神县| 江都市| 晋江市| 汝阳县| 钟山县| 双桥区| 噶尔县| 华宁县|