1.Solr
優點:
(1)Solr有一個更大、更成熟的用戶、開發和貢獻者社區。
(2)支持添加多種格式的索引,如:HTML、PDF、微軟 Office 系列軟件格式以及 JSON、XML、CSV 等純文本格式。
(3)Solr比較成熟、穩定。
(4)不考慮建索引的同時進行搜索,速度更快。
缺點:
建立索引時,搜索效率下降,實時索引搜索效率不高。
2.Elasticsearch
優點:
(1)Elasticsearch是分佈式的。不需要其他組件,分發是實時的,被叫做”Push replication”。
(2)Elasticsearch 完全支持 Apache Lucene 的接近實時的搜索。
(3)處理多租戶(multitenancy)不需要特殊配置,而Solr則需要更多的高級設置。
(4)Elasticsearch 採用 Gateway 的概念,使得完備份更加簡單。
(5)各節點組成對等的網絡結構,某些節點出現故障時會自動分配其他節點代替其進行工作。
缺點:
還不夠自動,不適合當前新的Index Warmup API
總結:
(1)當單純的對已有數據進行搜索時,Solr更快。
(2)當實時建立索引時, Solr會產生io阻塞,查詢性能較差, Elasticsearch具有明顯的優勢。
(3)隨着數據量的增加,Solr的搜索效率會變得更低,而Elasticsearch卻沒有明顯的變化。
(4)Solr的架構不適合實時搜索的應用。
(5)Solr 支持更多格式的數據,而 Elasticsearch 僅支持json文件格式
(6)Solr 在傳統的搜索應用中表現好於 Elasticsearch,但在處理實時搜索應用時效率明顯低於 Elasticsearch
(7)Solr 是傳統搜索應用的有力解決方案,但 Elasticsearch 更適用於新興的實時搜索應用
3.補充 Hermes:
Solr\ES :偏重於爲小規模的數據提供全文檢索服務;Hermes:則更傾向於爲大規模的數據倉庫提供索引支持,爲大規模數據倉庫提供即席分析的解決方案,並降低數據倉庫的成本,Hermes數據量更“大”。
使用特點:
(1)一個基於大索引技術的海量數據實時檢索分析平臺。側重數據分析。
(2)數據規模從幾億到萬億不等。最小的表也是千萬級別。在騰訊17 臺TS5機器,就可以處理每天450億的數據(每條數據1kb左右),數據可以保存一個月之久。