一、介紹
1、ES
Elasticsearch是用Java開發並且是當前最流行的開源的企業級搜索引擎,支持多種語言
2、Lucene
Lucene可以被認為是迄今為止最先進、性能最好的、功能最全的搜索引擎庫(框 架),
但是想要使用Lucene,必須使用Java來作為開發語言並將其直接集成到你的應用中
3、Solr
Solr 是Apache下的一個頂級開源項目,采用Java開發,它是基於Lucene的全文搜索服務。
Solr提供了比Lucene更為豐富的查詢語言,同時實現了可配置、可擴展,並對索引、搜索性能進行了優化。
Solr可以獨立運行在Jetty、Tomcat等這些Servlet容器中
二、對比
ES與Lucene的區別
Lucene,必須使用Java來作為開發語言並將其直接集成到你的應用中,並且Lucene的配置及使用非常復雜,你需要深入了解檢索的相關知識來理解它 是如何工作的。lucene有很多缺陷,es並不存在。
- 只能在Java項目中使用,並且要以jar包的方式直接集成項目中
- 使用非常復雜-創建索引和搜索索引代碼繁雜
- 不支持集群環境-索引數據不同步(不支持大型項目)
- 索引數據如果太多就不行,索引庫和應用所在同一個服務器,共同占用硬 盤.共用空間少.
ES與Solr對比
- 單純對已有數據進行搜索時,solr更快;但是實時簡歷索引時,solr會產生io阻塞,查詢性能較差。而es不會
- solr利用zk進行分布式管理,而es自身帶有分布式協調管理功能。
- solr支持更多的數據格式,如json、xml、csv等,而es僅支持json文件格式
- solr在傳統的搜索應用中表現好於es,但在處理實時搜索應用時效率明顯低於es。
Solr與Lucene對比
Lucene是一個開放源代碼的全文檢索引擎工具包,它不是一個完整的全文檢索引擎,Lucene提供了完整的查詢引擎和索引引擎,目的是為軟件開發人員提供一個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能,或者以Lucene為基礎構建全文檢索引擎。
Solr的目標是打造一款企業級的搜索引擎系統,它是一個搜索引擎服務,可以獨立運行,通過Solr可以非常快速的構建企業的搜索引擎,通過Solr也可以高效的完成站內搜索功能。