大數據是一個包括一切的術語,指的是數據集很大很複雜,他們須要特別設計的硬件和軟件工具。數據集一般是 T 或者更大級別。這些數據集從各類各樣的來源建立,包括傳感器,收集氣象信息,公開可用的信息,如雜誌、報紙、文章。還包括購買交易記錄、網絡日誌、醫療記 錄、軍事偵察、視頻和圖像檔案和大規模的電子商務等等。web
要分析這些數據須要專門的軟硬件,本文介紹 7 個開源的搜索引擎適合用於大數據處理:算法
1. Apache Lucene數據庫
Lucene 是apache軟件基金會一個開放源代碼的全文檢索引擎工具包,是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎。 Lucene的目的是爲軟件開發人員提供一個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能,或者是以此爲基礎創建起完整的全文檢索引擎。apache
特性:api
2. Apache Solr服務器
Apache Solr (讀音: SOLer) 是一個開源的搜索服務器。Solr 使用 Java 語言開發,主要基於 HTTP 和 Apache Lucene 實現。Apache Solr 中存儲的資源是以 Document 爲對象進行存儲的。每一個文檔由一系列的 Field 構成,每一個 Field 表示資源的一個屬性。Solr 中的每一個 Document 須要有能惟一標識其自身的屬性,默認狀況下這個屬性的名字是 id,在 Schema 配置文件中使用:<uniqueKey>id</uniqueKey>
進行描述。網絡
3. ElasticSearch架構
Elastic Search 是一個基於Lucene構建的開源,分佈式,RESTful搜索引擎。設計用於雲計算中,可以達到實時搜索,穩定,可靠,快速,安裝使用方便。支持經過HTTP使用JSON進行數據索引。框架
4. Sphinx分佈式
Sphinx是一個基於SQL的全文檢索引擎,能夠結合MySQL,PostgreSQL作全文搜索,它能夠提供比數據庫自己更專業的搜索功能,使得應用程序更容易實現專業化的全文檢索。Sphinx特別爲一些腳本語言設計搜索API接口,如PHP,Python,Perl,Ruby等,同時爲MySQL也設計了一個存儲引擎插件。
5. Xapian
Xapian是一個用C++編寫的全文檢索程序,他的做用相似於Java的lucene。儘管在Java世界lucene已是標準的全文檢索程序,可是C/C++世界並無相應的工具,而Xapian則填補了這個缺憾。
6. Nutch
Nutch 是一個開源Java 實現的搜索引擎。它提供了咱們運行本身的搜索引擎所需的所有工具。包括全文搜索和Web爬蟲。
儘管Web搜索是漫遊Internet的基本要求, 可是現有web搜索引擎的數目卻在降低. 而且這頗有可能進一步演變成爲一個公司壟斷了幾乎全部的web搜索爲其謀取商業利益.這顯然 不利於廣大Internet用戶.
Nutch爲咱們提供了這樣一個不一樣的選擇. 相對於那些商用的搜索引擎, Nutch做爲開放源代碼 搜索引擎將會更加透明, 從而更值得你們信賴. 如今全部主要的搜索引擎都採用私有的排序算法, 而不會解釋爲何一個網頁會排在一個特定的位置. 除此以外, 有的搜索引擎依照網站所付的 費用, 而不是根據它們自己的價值進行排序. 與它們不一樣, Nucth沒有什麼須要隱瞞, 也沒有 動機去扭曲搜索的結果. Nutch將盡本身最大的努力爲用戶提供最好的搜索結果.
Nutch 致力於讓每一個人能很容易, 同時花費不多就能夠配置世界一流的Web搜索引擎. 爲了完成這一宏偉的目標, Nutch必須可以作到:
7. LGTE
LGTE 是基於 Lucene 提供了擴展 Lucene API 用於集成不少服務,例如片斷生成、查詢擴展等等,並提供了一組單元測試。
特性包括: