今天開始要接觸ElasticSearch(如下稱ES)搜索引擎,以前只是聽過Solr,徹底沒聽過也沒用過,因此這篇文章做爲基礎入門記錄。mysql
ElasticSearch是一個創建在全文搜索引擎 Apache Lucene™ 基礎上的高可用開源全文檢索和分析組件。提供存儲服務,搜索服務,大數據準實時分析等。通常用於提供一些提供複雜搜索的應用,基於RESTful web接口。Elasticsearch是用Java開發的,並做爲Apache許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。設計用於雲計算中,可以達到實時搜索,穩定,可靠,快速,安裝使用方便。簡單的說就是一個提升大量數據搜索能力的搜索引擎。
可是咱們爲何必定要用它呢?Mysql能夠添加索引啊,也能夠作集羣。 mysql的索引若是創建太多,雖然查詢數據效率提升了,可是新增和修改將極大的減慢,因此不宜創建太多索引,而ES每個字段均可以是索引,卻不會影響更新和修改的操做。web
如今ES已是JAVA界搜索引擎的當紅炸仔雞,愈來愈多的網站使用它。其中包含Github,Mozilla,Sony。國內也有愈來愈多的公司加入這個陣營了。
ES有以下的優勢:sql
輕量級。下載ES,直接啓動/bin下的start,一個服務的節點就啓動了。服務器
天生分佈式,極簡配置就能夠完成分佈式。想要將多個節點加入一個集羣中,只要在每一個節點中配置相同的集羣名,ES節點會自動嗅探其餘節點而後加入相同名的集羣。出現故障後,會自動排除故障機器,並從新分配壓力至有效的其餘機器。分佈式
分片機制。同一個索引分紅多個分片(sharding),分片利於治理,也方便爲集羣和高可用提供支持學習
高可用。提供複製(replica)機制,一個分片能夠設置多個複製,使得某臺服務器宕機的狀況下,集羣仍舊能夠照常運行,並會把因爲服務器宕機丟失的複製恢復到其它可用節點上。大數據
簡單易上手。ES自己帶了不少的標準配置,對於新手來講啓動節點,作基本的配置以後(乃至不須要任何配置)就可使用。極大地縮短上手時間和學習時間。在你之後熟悉以後能夠作更多的定製化配置。 固然ES還有不少不少的優勢,有興趣能夠本身瞭解瞭解。網站
下一節介紹一下ES的幾個核心概念。搜索引擎