開源搜尋引擎相關資料

bq_wang發表於2008-06-22
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE索引擎的工作流程主要分為三步:從網際網路抓取網頁建立抓取網頁的索引庫從索引庫中進行搜尋。

首先需要一個能訪問網路的爬蟲器程式,依據URL之間的關聯性自動爬行整個網際網路,並對爬行過的網頁進行抓取收集。當網頁被收集回來後,採用 索引分析程式進行網頁資訊的分析,依據一定的相關度演算法(如超連結演算法)進行大量計算,建立倒排序的索引庫。索引庫建好後使用者就可以透過提供的搜尋介面提 交關鍵詞進行搜尋,依據特定的排序演算法返回搜尋結果。因此,搜尋引擎並不是對網際網路進行直接搜尋,而是對已抓取網頁索引庫的搜尋,這也是能快速返回搜尋結 果的原因,索引在其中扮演了最為重要的角色,索引演算法的效率直接影響搜尋引擎的效率,是評測搜尋引擎是否高效的關鍵因素。

網頁爬行器、索引器、查詢器共同構成了搜尋引擎的重要組成單元,針對特定的語言,如中文、韓文等,還需要分詞器進行分詞,一般情況下,分詞器與索引器一起使用建立特定語言的索引庫。

而開放原始碼的搜尋引擎為使用者提供了極大的透明性,開放的原始碼、公開的排序演算法、隨意的可定製性,相比於商業搜尋引擎而言,更為使用者所需 要。目前,開放原始碼的搜尋引擎專案也有一些,主要集在中搜尋引擎開發工具包與架構、Web搜尋引擎、檔案搜尋引擎幾個方面,本文概要介紹一下當前比較流 行且相對比較成熟的幾個搜尋引擎專案。

開源搜尋引擎工具包
 

 Egothor 

Egothor是一個用Java編寫的開源而高效的全文字搜尋引擎。藉助Java的跨平臺特性,Egothor能應用於任何環境的應用,既可配置為單獨的搜尋引擎,又能用於你的應用作為全文檢索之用。

 Nutch 

Nutch 是一個開源Java 實現的搜尋引擎。它提供了我們執行自己的搜尋引擎所需的全部工具。包括全文搜尋和Web爬蟲。

 Lucene 

Apache Lucene是一個基於Java全文搜尋引擎,利用它可以輕易地為Java軟體加入全文搜尋功能。Lucene的最主要工作是替檔案的每一個字作索引,索 引讓搜尋的效率比傳統的逐字比較大大提高,Lucen提供一組解讀,過濾,分析檔案,編排和使用索引的API,它的強大之處除了高效和簡單外,是最重要的 是使使用者可以隨時應自已需要自訂其功能。

 Oxyus 

是一個純java寫的web搜尋引擎。

 BDDBot 

BDDBot是一個簡單的易於理解和使用的搜尋引擎。它目前在一個文字檔案(urls.txt)列出的URL中爬行,將結果儲存在一個資料庫中。它也支援一個簡單的Web伺服器,這個伺服器接受來自瀏覽器的查詢並返回響應結果。它可以方便地整合到你的Web站點中。

 Zilverline 

Zilverline 是一個搜尋引擎,它透過web方式搜尋本地硬碟或intranet上的內容。Zilverline可以從PDF, Word, Excel, Powerpoint, RTF, txt, java, CHM,zip, rar等文件中抓取它們的內容來建立摘要和索引。從本地硬碟或intranet中查詢到的結果可重新再進行檢索。Zilverline支援多種語言其中包 括中文。

 XQEngine 

XQEngine 用於XML文件的全文字搜尋引擎.利用XQuery做為它的前端查詢語言.它能夠讓你查詢XML文件集合透過使用關鍵字的邏輯組合.有點類似於 Google與其它搜尋引擎搜尋HTML文件一樣.XQEngine只是一個用Java開發的很緊湊的可嵌入的元件.

 MG4J 

MG4J可以讓你為大量的文件集合構建一個被壓縮的全文字索引,透過使內插編碼(interpolative coding)技術.

 JXTA Search 

JXTA Search是一個分散式的搜尋系統.設計用在點對點的網路與網站上.

 YaCy 

YaCy基於p2p的分散式Web搜尋引擎.同時也是一個Http快取代理伺服器.這個專案是構建基於p2p Web索引網路的一個新方法.它可以搜尋你自己的或全域性的索引,也可以Crawl自己的網頁或啟動分散式Crawling.

 Red-Piranha 

Red- Piranha是一個開源搜尋系統,它能夠真正"學習"你所要查詢的是什麼.Red-Piranha可作為你桌面系統(Windows,Linux Mac)的個人搜尋引擎,或企業內部網搜尋引擎,或為你的網站提供搜尋功能,或作為一個P2P搜尋引擎,或與wiki結合作為一個知識/文件管理解決方 案,或搜尋你要的RSS聚合資訊,或搜尋你公司的系統(包括SAP,Oracle或其它任何Database/Data source),或用於管理PDF,Word和其它文件,或作為一個提供搜尋資訊的WebService或為你的應用程式 (Web,Swing,SWT,Flash,Mozilla-XUL,PHP, Perlc#/.Net)提供搜尋後臺等等.

 LIUS 

LIUS是一個基於Jakarta Lucene專案的索引框架。LIUSLucene新增了對許多檔案格式的進行索引功能如:
Ms Word,Ms Excel,Ms PowerPoint,RTF,PDF,XML,HTML,TXT,Open Office
序列和JavaBeans。針對JavaBeans的索引特別有用當我們要對資料庫進行索引或剛好使用者使用持久層ORM技術 如:Hibernate,JDO,Torque,TopLink進行開發時。

 Aperture 

Aperture這個Java框架能夠從各種各樣的資料系統(如:檔案系統、Web站點、IMAPOutlook郵箱)或存在這些系統中的檔案(:文件、圖片)爬取和搜尋其中的全文字內容與後設資料。它當前支援的檔案格式如下:

  Plain text

  HTML, XHTML

  XML

  PDF (Portable Document Format)

  RTF (Rich Text Format)

  Microsoft Office: Word, Excel, Powerpoint, Visio, Publisher

  Microsoft Works

  OpenOffice 1.x: Writer, Calc, Impress, Draw

  StarOffice 6.x - 7.x+: Writer, Calc, Impress, Draw

  OpenDocument (OpenOffice 2.x, StarOffice 8.x)

  Corel WordPerfect, Quattro, Presentations

  Emails (.eml files)

 Apache Solr 

Solr 是一個高效能,採用Java5開發,基於Lucene的全文搜尋伺服器。文件透過Http利用XML加到一個搜尋集合中。查詢該集合也是透過http收到 一個XML/JSON響應來實現。它的主要特性包括:高效、靈活的快取功能,垂直搜尋功能,高亮顯示搜尋結果,透過索引複製來提高可用性,提供一套強大 Data Schema來定義欄位,型別和設定文字分析,提供基於Web的管理介面等。

 Paoding 

Paoding中文分詞是一個使用Java開發的,可結合到Lucene應用中的,為網際網路、企業內部網使用的中文搜尋引擎分片語件。Paoding填補了國內中文分詞方面開源元件的空白,致力於此並希翼成為網際網路網站首選的中文分詞開源元件。 Paoding中文分詞追求分詞的高效率和使用者良好體驗。

 Carrot2 

Carrot2 是一個開源搜尋結果分類引擎。它能夠自動把搜尋結果組織成一些專題分類。Carrot2提供的一個架構能夠從各種搜尋引擎(YahooAPI GoogleAPIMSN Search APIeTools Meta. SearchAlexa Web SearchPubMedOpenSearchLucene indexSOLR)獲取搜尋結果。

 

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6517/viewspace-364441/,如需轉載,請註明出處,否則將追究法律責任。

相關文章