學習elasticsearch必須先學習lucene嗎?


1、先說說Lucene與elasticsearch關係

Lucene是一個開源的全文檢索引擎工具包(類似於Java api),而Elasticsearch底層是基於這些包,對其進行了擴展,提供了比Lucene更為豐富的查詢語言,可以非常方便的通過Elasticsearch的HTTP介面與底層Lucene交互。

如果在應用程序中直接使用Lucene,你需要覆蓋大量的集成框架工作,而使用ElasticSearch就省下了這些集成工作。

一句話概括: Elasticsearch是Lucene面向企業搜索應用的擴展,極大的縮短研發周期。

2、有沒有必要先去學習Lucene?

剛剛入門Elasticsearch,只需稍微了解下Lucene,無需去真正學習它,就可以很好的完成全文索引的工作,很好的進行開發。

等自己熟練使用之後,可以反過頭來學習Lucene裡面底層的原理,也是一種提升。

因為Lucene是一個編程庫,您可以按原始介面來調用。但是Elasticsearch是在它基礎上擴展的應用程序,就可以直接拿來使用了。

---例子一定要看!!如下:---

例如:你直接拿汽車(Elasticsearch)來開,開好車就行,無需了解裡面的發動機、各個組件(Lucene library)。後面你在去了解一些原理,對於修車等等會有幫助。


沒什麼必要,都比較容易理解,可以了解一下。

es底層的索引機制是基於lucene實現的,但是使用es的場景並不是主要操作索引,比如通過elk對系統進行監控可以做ng日誌的採集,或者自研sdk埋點日誌採集,這些和lucene本身都沒啥關係,相反,es的運維,官方client的使用,這些是es所關心的


沒必要,你搞原理可以看lucene,純用的話直接ES使用文檔就行


初學時可以不需要了解,深入後要了解到底是怎麼索引,怎麼查詢,索引優化,查詢優化等深入內容是必須需要理解的,請參考。


不需要


如果僅使用的話,可以不必了解Lucene,ES是對Luncene的進一步封裝改造,在使用方法上區別已經比較大了。

如果是要學原理就直接看Lucene。


推薦閱讀:

Elasticsearch到底能玩多大的數據量?
知乎為什麼要自己開發日誌聚合系統「kids」而不用更簡潔方便的「ELK」?
如何用zabbix監控elasticsearch?

TAG:Lucene | Elasticsearch |