ES、Lucene、Solr的介紹和區別


一、介紹

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也可以高效的完成站內搜索功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM