反其道行之的Elasticsearch
在這個移動互聯(lián)網(wǎng)早已普及的時代,搜索成了每個人日常生活的剛性需求。我們可以用淘寶搜商品,用微博搜話題,用知乎搜問題,用GitHub搜代碼,用bilibili搜視頻,等等。
搜索是一種高效獲取信息的方式,只需要一個輸入框和一個按鈕,并輸入關鍵字,即可立刻得到結果。我們每天享受著技術帶來的便利,那么你有沒有想過自己也能做一個“搜索引擎”呢?下面介紹本章的“主角”——Elasticsearch。
Elasticsearch簡介
什么是搜索引擎
我們對搜索引擎都有一定的了解,但你可能不知道搜索引擎還有以下幾種分類:
· 目錄搜索引擎
· 全文搜索引擎
· 元搜索引擎
· 垂直搜索引擎
目錄搜索引擎:算不上真正的搜索引擎。由人工采集、整理分類的信息網(wǎng)站,以及早期那些門戶網(wǎng)站屬于這一類。
全文搜索引擎:目前應用最廣泛的搜索引擎,通過網(wǎng)絡爬蟲、自然語言處理(NLP)及大數(shù)據(jù)分析形成自己龐大的數(shù)據(jù)庫。百度、谷歌、必應等屬于這一類。
元搜索引擎:簡單來講,就是一種聚合多個全文搜索引擎的工具。它可以先把關鍵詞發(fā)送給多個搜索引擎,然后把各個搜索引擎的搜索結果組合在一起。元搜索引擎并不生產(chǎn)搜索結果,它只是搜索結果的搬運工。
垂直搜索引擎:屬于全文搜索引擎的一個細分類型,是某個特定業(yè)務領域的全文搜索引擎。本章開篇提到的淘寶、微博、bilibili等都屬于這一類。
我們通常使用的是垂直搜索引擎。
在搜索界的地位
圖13-1所示為來自DB-Engines的搜索引擎排行。

DB-Engines數(shù)據(jù)來源:搜索引擎(谷歌、必應)中的檢索次數(shù);谷歌趨勢;技術網(wǎng)站(Stack Overflow、DBA Stack Exchange)的問答、討論;
招聘網(wǎng)站(Indeed、Simply Hired)中的招聘要求;職場社交網(wǎng)站(領英)用戶的個人簡介;社交媒體(Twitter)上的發(fā)帖內(nèi)容。可以看到,Elasticsearch不僅常居榜首,且得分“一騎絕塵”。
為什么是Elasticsearch
Elasticsearch和排名第三的Solr都是基于Lucene的,性能都很好,可以對PB量級的數(shù)據(jù)進行秒級的查詢。那么,Elasticsearch的優(yōu)勢有哪些呢?
1PB=1024 TB與Solr對比
· Elasticsearch是分布式的,而Solr需要借助ZooKeeper
· Solr單純的查詢性能優(yōu)于Elasticsearch,但建立索引時會有I/O阻塞,而Elasticsearch不存在這個問題,因此也更適合互聯(lián)網(wǎng)業(yè)務390
· 隨著數(shù)據(jù)量的增加,Solr的性能會下降,而Elasticsearch基本不受影響
· Elasticsearch提供了簡單易用的REST API,可以無縫地與其他技術結合
因為Elasticsearch自身的強大與易用,所以在很多業(yè)務場景都能看到它的身影。它除了是垂直搜索引擎的首選解決方案,還可以與Logstash和Kibana組成著名的ELK組合,是非常好的日志處理與分析工具,并且適用于數(shù)據(jù)分析與數(shù)據(jù)挖掘等BI業(yè)務場景。
誰在用
· 國外:GitHub、Uber、Facebook等
· 阿里巴巴、騰訊、百度、字節(jié)跳動、美團、滴滴等
本文就是愿天堂沒有BUG給大家分享的內(nèi)容,大家有收獲的話可以分享下,想學習更多的話可以到微信公眾號里找我,我等你哦。
