1. 程式人生 > >Lucene實現各種常見文件的全文檢索

Lucene實現各種常見文件的全文檢索

      Lucene是apache軟體基金會jakarta專案組的一個子專案,是一個開放原始碼的全文檢索引擎工具包,即它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文字分析引擎。Lucene的目的是為軟體開發人員提供一個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能,或者是以此為基礎建立起完整的全文檢索引擎。


      作為一個開放原始碼專案,Lucene從問世之後,引發了開放原始碼社群的巨大反響,程式設計師們不僅使用它構建具體的全文檢索應用,而且將之整合到各種系統軟體中去,以及構建Web應用,甚至某些商業軟體也採用了Lucene作為其內部全文檢索子系統的核心。


      Lucene提供了一個全文檢索引擎得架構,而沒有提供各種型別文件的全文檢索功能,使用者需要利用其它軟體工具包來提取各種型別文件的內容,然後再利用Lucene的工具包來建立索引。

      下面簡單介紹一下能夠配合Lucene使用的,比較著名的,能夠提取各種常見型別文件的工具包。

      Apache POI(支援word,excel,powerpoint,visio等格式)
      Apache POI是Apache軟體基金會的開放原始碼函式庫,POI提供API給Java程式對Microsoft Office格式檔案
讀和寫的功能。它可以配合Lucene,建立包括doc,docx,xls,xlsx,ppt,pptx等格式的檔案的索引。
      HSSF - 提供讀寫Microsoft Excel格式檔案的功能。
      XSSF - 提供讀寫Microsoft Excel OOXML格式檔案的功能。
      HWPF - 提供讀寫Microsoft Word格式檔案的功能。
      HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能。
      HDGF - 提供讀寫Microsoft Visio格式檔案的功能。
      網址:

http://poi.apache.org/

      PDFBox(支援pdf格式)
      PDFBox是一個開源的可以操作PDF文件的Java PDF類庫。它可以建立一個新PDF文件,操作現有PDF文件並
提取文件中的內容。它可以配合Lucene來建立PDF文件的索引。
      它具有以下特性:
      將一個PDF文件轉換輸出為一個文字檔案。
      可以從文字檔案建立一個PDF文件。
      加密/解密PDF文件。
      向已有PDF文件中追加內容。
      可以從PDF文件生成一張圖片。
      可以與Jakarta Lucene搜尋引擎的整合。
      網址:
http://sourceforge.net/projects/pdfbox/

      JTidy(支援html格式)
      JTidy 是 HTML Tidy 用Java語言實現的版本,提供了一個HTML的語法檢查器和很好的列印功能。JTidy可
以用來清除格式不好和不對的 HTML。此外,JTidy提供了對整個HTML的DOM分析器。程式設計師可以將JTidy當作一個處理HTML檔案的DOM解析器來使用。它可以配合Lucene來建立HTML文件的索引。
      網址:
http://sourceforge.net/projects/jtidy/