ElasticSearch系列之一:初識ES搜索引擎

  今天開始要接觸ElasticSearch(如下稱ES)搜索引擎,以前只是聽過Solr,徹底沒聽過也沒用過,因此這篇文章做爲基礎入門記錄。mysql

一:爲何選擇ES?

  ElasticSearch是一個創建在全文搜索引擎 Apache Lucene™ 基礎上的高可用開源全文檢索和分析組件。提供存儲服務,搜索服務,大數據準實時分析等。通常用於提供一些提供複雜搜索的應用,基於RESTful web接口。Elasticsearch是用Java開發的,並做爲Apache許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。設計用於雲計算中,可以達到實時搜索,穩定,可靠,快速,安裝使用方便。簡單的說就是一個提升大量數據搜索能力的搜索引擎。
  可是咱們爲何必定要用它呢?Mysql能夠添加索引啊,也能夠作集羣。 mysql的索引若是創建太多,雖然查詢數據效率提升了,可是新增和修改將極大的減慢,因此不宜創建太多索引,而ES每個字段均可以是索引,卻不會影響更新和修改的操做。web

  • 首先,大多數查詢中咱們是有like來作模糊匹配,可是mysql的like並不所有均可以使用到索引,只有XXX%這樣才能夠用到索引。
  • 其次,mysql的like也不能徹底的模糊匹配,像%瓜菜%搜索並不能搜索出瓜果蔬菜,可是大多數需求是這樣的。
  • 再者,查詢的結果也不能進行高亮操做,沒法確認返回值關鍵字所在位置。
  • 最後,mysql的搜索結果沒法根據匹配度排序,可能致使前面返回的數據並非用戶須要的。

二:ES有什麼優勢呢?

  如今ES已是JAVA界搜索引擎的當紅炸仔雞,愈來愈多的網站使用它。其中包含GithubMozillaSony。國內也有愈來愈多的公司加入這個陣營了。
ES有以下的優勢:sql

  • 輕量級。下載ES,直接啓動/bin下的start,一個服務的節點就啓動了。服務器

  • 天生分佈式,極簡配置就能夠完成分佈式。想要將多個節點加入一個集羣中,只要在每一個節點中配置相同的集羣名,ES節點會自動嗅探其餘節點而後加入相同名的集羣。出現故障後,會自動排除故障機器,並從新分配壓力至有效的其餘機器。分佈式

  • 分片機制。同一個索引分紅多個分片(sharding),分片利於治理,也方便爲集羣和高可用提供支持學習

  • 高可用。提供複製(replica)機制,一個分片能夠設置多個複製,使得某臺服務器宕機的狀況下,集羣仍舊能夠照常運行,並會把因爲服務器宕機丟失的複製恢復到其它可用節點上。大數據

  • 簡單易上手。ES自己帶了不少的標準配置,對於新手來講啓動節點,作基本的配置以後(乃至不須要任何配置)就可使用。極大地縮短上手時間和學習時間。在你之後熟悉以後能夠作更多的定製化配置。 固然ES還有不少不少的優勢,有興趣能夠本身瞭解瞭解。網站

    下一節介紹一下ES的幾個核心概念。搜索引擎

相關文章
相關標籤/搜索