我們之前有討論過,ES 和 Solr 的功能實現上其實差別不大,沒有什麼功能比如說是 ES 有的而 Solr 是沒有的。
為什麼這麼說呢?其實也很好理解,畢竟都是互相借鑑著來的嘛,這樣才能共同進步。不然的話,你有的我沒有,那大家還怎麼選我的服務啊。
但是為什麼我們最近一想到搜尋引擎,或者是利用搜尋引擎在自己公司裡實現某些業務,我們第一反應都是 ES 呢?
個人理解有以下幾點原因:
- ES 一直說自己是近實時搜尋。其實近實時搜尋是 Lucene 的功能,ES 和 Solr 都是基於 Lucene 實現的,所以都有了近實時搜尋的功能,只不過 ES 一直在強調這點,而大家又比較關心這一點,所以一談到搜尋系統,大家首先想到的是 ES。
- ES 的生態更加好。我們都知道 ELK,實現了日誌從收集到展示。以及其他的外掛、服務等,非常友好,使用者選擇了 ES,就能方便的接入這些服務。
- 方便擴容。ES 能夠實現平滑擴容,只要新增機器,就能夠自動擴容,不需要使用 Zookeeper。其實 SolrClound 版本也能實現平滑擴容。
- 容易上手。ES 上手特別簡單,無需大量配置即可上手。這也就是我們熟悉的“約定大於配置”。這也帶來了一些侷限性,比如在 Solr 中我們可以透過配置來修改欄位型別,在 ES 中我們卻不能修改了,只能重建索引。
既然 ES 這麼火,今天我們就來看看 ES 都有哪些應用場景。
關係型資料庫的補充、傳統資料庫的替代
ES 可以實現一些關係型資料庫難以實現的功能,比如全文檢索,ES 可以作為關係型資料庫的補充,用來彌補關係型資料中的不足,也可能在某些情況下替代關係型資料庫。
站內搜尋、垂直搜尋
電商網站的商品搜尋可以說是站內搜尋,和垂直搜尋有交集。
什麼是垂直搜尋?
垂直搜尋是針對某一行業的專業搜尋引擎,是搜尋的細分和延伸,對網頁庫中的某類專門的資訊做一次整合,定向分欄位抽取出需要的資料進行處理後再以某種形式返回給使用者。
相較於通用搜尋引擎的資訊量大,查詢不準確,深度不夠,垂直搜尋作為新的搜尋引擎服務模式,透過針對某一特定領域,某一特定人群或者是某一特定需求,提供的有一定價值的資訊和相關服務,更加專注、具體和深入,且具有一定的行業色彩。
通俗意義上,垂直搜尋引擎是網站、APP 裡面提供的搜尋視窗,讓使用者透過搜尋關鍵詞就能直達目標內容。
淘寶、天貓、京東是電商商品領域的垂直搜尋引擎。
知乎是知識問答領域的垂直搜尋引擎。
谷歌、百度、必應則是面向通用領域、索引海量資訊、試圖服務全網使用者的通用搜尋引擎。
記錄和日誌分析
瞭解 ES 的都知道,這個功能不足為奇,圍繞著 ES 構建的生態系統使其成為最容易實現的功能。
我們可以對海量資料進行近實時的處理,對複雜的日誌進行分析,得到我們想要的結果。
全文檢索
毫無疑問,作為 Elasticsearch 的核心功能,全文搜尋在 ES 應用場景中佔據著重要的位置。
- DataDome 公司是一家全球網路安全公司,提供 SaaS 解決方案,旨在保護客戶王贊免受 OWASP 的侵害。
- 2013年初,GitHub拋棄了Solr,採取ElasticSearch 來做PB級的搜尋。
- 維基百科
- Stack Overflow
- 餓了麼物流系統
- 京東到家訂單系統
- 攜程酒店訂單、機票
- 去哪兒訂單
- 等等
本作品採用《CC 協議》,轉載必須註明作者和本文連結