天天看點

Elasticsearch:為了搜尋,你懂的(For Search, You Know)

Elasticsearch模糊的曆史

多年前,一個叫做Shay Banon的剛結婚不久的失業開發者,由于妻子要去倫敦學習廚師,他便跟着也去了。在他找工作的過程中,為了給妻子建構一個食譜的搜尋引擎,他開始使用Lucene進行嘗試。

直接基于Lucene工作會比較困難,是以Shay開始抽象Lucene代碼以便Java程式員可以在應用中添加搜尋功能。他釋出了他的第一個開源項目,叫做“Compass”。

後來Shay找到一份工作,這份工作處在高性能和記憶體資料網格的分布式環境中,是以高性能的、實時的、分布式的搜尋引擎也是理所當然需要的。

然後他決定重寫Compass庫使其成為一個獨立的服務叫做Elasticsearch。

第一個公開版本出現在2010年2月,在那之後Elasticsearch已經成為Github上最受歡迎的項目之一,代碼貢獻者超過300人。一家主營Elasticsearch的公司就此成立,他們一邊提供商業支援一邊開發新功能,不過Elasticsearch将永遠開源且對所有人可用。

Shay的妻子依舊等待着她的食譜搜尋……

為了搜尋,你懂的(For Search, You Know)

無論在開源還是專有領域,Lucene可以被認為是迄今為止最先進、性能最好的、功能最全的搜尋引擎庫。但是,Lucene隻是一個庫。想要使用它,你必須使用Java來作為開發語言并将其直接內建到你的應用中,更糟糕的是,Lucene非常複雜,你需要深入了解檢索的相關知識來了解它是如何工作的。

ElasticSearch是一個基于Apache Lucene核心、使用Java開發、用于實作索引和搜尋的功能的開源搜尋引擎,通過标準的RESTful API覆寫Lucene的複雜性,以期全文檢索技術能簡單易用地被各種搜尋應用所使用。

Elasticsearch的特性

(1)毫秒級近實時檢索

所有資料無需等待,進入叢集即可被檢索和分析。

(2)高可靠性

通過備援、分片機制,将叢集任意一個節點上的請求路由到相應資料所在的節點,無論是增加節點還是移除節點,分片都可以做到無縫的擴充和遷移。

(3)PB級擴充

小叢集起步和強大的橫向擴充性,支援成百上千節點和PB級别的資料量。可擴充到上百台伺服器,處理PB級别結構化或非結構化資料。

(4)豐富易用的接口支援

提供Developer-Friendly, RESTful API友好強大的REST API,任何語言編寫的HTTP用戶端,都可以通過REST API來操作ElasticSearch。

(5)強大的技術協定棧

ELBK的技術協定棧已經風靡到了海量資料處理分析的各個方面,尤其在海量日志資料分析方面獨樹一幟,成為了各大網際網路公司的首選。

(6)開源

作為創業者、學習者、商業公司,還有比開源更令人開心的事嗎?

應用案例

  • 維基百科用ES來進行全文搜尋并高亮顯示關鍵詞,提供search-as-you-type、did-you-mean等搜尋建議功能。
  • 紐約時報使用ES對164年跨度的發表文章提供檢索。
  • 英國衛報用ES來處理訪客日志,以便能将公衆對不同文章的反應實時地回報給各位編輯。
  • StackOverflow将全文搜尋與地理位置和相關資訊進行結合,以提供more-like-this相關問題的展現。
  • GitHub使用ES來檢索超過1300億行代碼。
  • Goldman Sachs使用ES來處理5TB資料的索引,投資銀行使用ES分析股票市場的變動。
  • Docker的容器搜尋服務也用ES編寫。

國内大資料廠商對Elasticsearch的支援

百度數智平台Elasticsearch

百度Elasticsearch是開源的全文檢索和分析引擎Elasticsearch的托管服務,提供自動運維和調優,減少客戶自行管理基礎設施的開銷,并完全相容開源接口,便于您現有業務零成本遷移。

Elasticsearch:為了搜尋,你懂的(For Search, You Know)
  • 産品功能:

    (1)強大的分析能力:Elasticsearch 是日志分析、應用程式監控和點選流分析等場景使用的常見分析引擎。

    (2)簡單易用:提供HTTP RESTful接口,可以通過任意的HTTP用戶端通路叢集,相容性優良,易用性高。

    (3)高可用:資料、中繼資料多副本存儲,當機期間不影響查詢服務,機器故障副本自動遷移。

    (4)超高性能:百度大資料專家團隊,基于内部應用經驗,深度優化叢集性能,在業内保持性能領先地位。

  • 應用場景

    (1)文字檢索

    文字檢索助力企業快速簡便地實作對于非結構化資料的搜尋功能。在大資料時代,百度提供了雲端的文字檢索解決方案,為企業搭建文字檢索系統提供指南。

    應用案例:百度網盟

    每日超過130億次的展現,服務于數十萬廣告主。基于Elasticsearch搭建的DMP平台,讓廣告主更好的定義精準閱聽人,協助廣告主制定投放政策,提升營銷效果。

    (2)日志分析

    提供日志分析托管服務,省去開發、部署以及運維的成本,便于客戶聚焦在如何利用日志分析結果做出更好的決策,進而快速實作商業目标。

    應用案例:百度雲安全

    百度雲分析是基于彈性雲的PB級規模的大資料分析平台,提供收集、管理和分析網站、系統日志的資料服務。通過使用Elasticsearch将數千萬行日志資料實時轉化為可視化的IT運作及安全狀況,讓管理者更容易整合資訊,分析出有價值的安全事件。

阿裡雲Elasticsearch

提供基于開源Elasticsearch及商業版X-Pack插件,緻力于資料分析、資料搜尋等場景服務。在開源Elasticsearch基礎上提供企業級權限管控、安全監控告警、自動報表生成等功能。

Elasticsearch:為了搜尋,你懂的(For Search, You Know)
  • 應用場景

    (1)日志/名額分析:通路日志、行為日志統計分析,快速擷取名額資料,并提供給相關業務人員對應名額

    特點:

    a.系統運維日志異常分析

    運維人員可以針對伺服器日志進行異常資訊快速定位

    b.行為日志分析

    基于使用者行為日志,分析使用者通路軌迹等資訊,幫助業務精準發展

    c.營運效果分析

    基于頁面采集資料和效果資料分析,實時調整營運政策

    (2)安全/業務分析:針對安全業務日志

    a.日常安全名額分析

    業務資料統計、分析、可視化報表展示

    b.潛在安全資訊挖掘

    業務資料或系統操作資料嗅探檢測、分析

    (3)應用/站内搜尋:站内資料快速檢索,滿足存量資料的快速索引和精準定位

    a.站内資訊全文搜尋

    應用内商品、文檔、社交資訊搜尋

    b.企業搜尋

    企業内部資料快速檢索

騰訊雲Elasticsearch

騰訊雲(Elasticsearch Service,ES)是騰訊雲基于開源搜尋引擎 Elasticsearch 打造的高可用、可伸縮的雲端托管 Elasticsearch 服務。騰訊雲 ES 服務 100% 相容 ELK 架構,廣泛應用于網際網路、遊戲、網際網路金融等領域客戶網站搜尋導航、企業級搜尋、服務日志異常監控、點選流分析等業務。

  • 應用場景:

    (1)日志分析

    網站伺服器、移動裝置、IoT 傳感器等裝置産生的日志,存在着節點分散、種類多樣、規模龐大等問題,這對需要通過日志搜尋,進行異常問題定位和業務分析等工作造成了很大的挑戰。騰訊雲 Elasticsearch Service 提供了彈性可擴充、準實時的集中式存儲方案,以及全文搜尋功能,友善日志的統一管理和查詢,幫助使用者快速定位和返現問題,提高解決問題的效率。

    (2)全文搜尋

    電商商品搜尋、移動應用搜尋、企業内部資訊搜尋等海量資料下的站内搜尋服務是高效擷取資訊的必要途徑,騰訊雲 Elasticsearch Service 擁

    有全文檢索功能,對結構化和非結構化資料都有良好的支援,同時還提供了簡單易用的 RESTful API 和各種語言的用戶端,友善使用者快速搭建穩定的搜尋服務,整合到已有到業務架構中。

    (3)商業智能

    在資料驅動營運的行業背景下,電子商務、移動應用、廣告媒體等業務都需要對資料進行深入的統計分析和挖掘來輔助商業決策,而規模龐大的業務資料對資料的統計分析造成了很大的挑戰。騰訊雲Elasticsearch Service 擁有結構化查詢的能力,支援複雜的過濾和聚合統計功能,幫助客戶對海量資料進行高效地個性化統計分析,發現問題與機會,輔助商業決策,真正地讓資料産生價值。

青雲Elasticsearch

QingCloud Elasticsearch 是一種基于 Lucene 建構的運作于 QingCloud 虛拟主機之上的多使用者分布式全文搜尋引擎。向使用者提供完整的RESTful API 接口,并内置各種主流插件,為使用者提供近實時的索引、搜尋和分析功能,輕松支援 TB 級别的全文檢索應用。

  • 産品功能:

    (1)開發接口:提供完整的 RESTful API 接口,可以供任意叢集節點通路。

    (2)内置插件:内置亞洲語言分詞、中英文分詞、PDF 和 Microsoft Word 文檔解析等常用插件。

    (3)無縫對接對象存儲:可以與 QingStor™ 對象存儲進行無縫對接,進行資料的存儲與恢複。

    (4)監控和告警:提供對叢集節點的監控資訊,如 CPU 使用率、記憶體使用率;同時支援建立告警政策。服務相關的監控資訊可通過 RESTful API接口輕松擷取。

  • 應用場景:

    (1)日志分析:完成結構化和半結構化的日志名額分析,适用于用于網站監控、遊戲、廣告技術等應用場景。

    (2)站内搜尋:提供站内關鍵資訊檢索與定位,适用于電商、門戶、IT 系統等應用場景。

    (3)業務監控:分析和監測業務中某些實時名額,适用于業務異常告警、實時業務資料分析等場景。

繼續閱讀