ElasticSearch(分佈式全文搜索引擎)

1.Lucene的優化, 實現了高可用的分佈式集羣的搜索方案前端

2.首先,ES的索引庫管理支持依然是基於Apache Lucene(TM)的開源搜索引擎。ES也使用Java開發並使用Lucene做爲其核心來實現全部索引和搜索的功能,可是它的目的是經過簡單的 RESTful API來隱藏Lucene的複雜性,從而讓全文搜索變得簡單。node

3.ES的特色linux

a)  分佈式的實時文件存儲,每一個字段都被索引並可被搜索npm

分佈式的實時分析搜索引擎json

能夠擴展到上百臺服務器,處理PB級結構化或非結構化數據windows

高度集成化的服務,你的應用能夠經過簡單的 RESTful API、各類語言的客戶端甚至命令行與之交互。
ES支持分佈式集羣

瀏覽器

 

b)  上手Elasticsearch很是容易。它提供了許多合理的缺省值,並對初學者隱藏了複雜的搜索引擎理論。它擁有開瓶即飲的效果(安裝便可使用),只需不多的學習既可在生產環境中使用。服務器

c)  與ES相似的框架cors

            i.     ES框架自身攜帶分佈式協調管理的功能,可是僅僅支持json格式的數據框架

           ii.     Solr(重量級加框架):利用zookeeper進行分佈式管理,支持更多格式的數據,使用時要作許多配置

         iii.     Katta基於Lucene
基於 Lucene 的,支持分佈式,可擴展,具備容錯功能,準實時的搜索方案。優勢:開箱即用,能夠與 Hadoop 配合實現分佈式。具有擴展和容錯機制。
缺點:只是搜索方案,建索引部分仍是須要本身實現。在搜索功能上,只實現了最基本的需求。成功案例較少,項目的成熟度稍微差一些。

           iv.     HadoopContrib

  1. Map/Reduce 模式的,分佈式建索引方案,能夠跟 Katta 配合使用。優勢:分佈式建索引,具有可擴展性。缺點:只是建索引方案,不包括搜索實現。工做在批處理模式,對實時搜索的支持不佳。

d)  小結:ElasticSearch簡化了全文檢索lucene的使用,同時增長了分佈式的特性,使得構建大規模分佈式全文檢索變得很是容易。

  1. ES的安裝和使用說明

a)  安裝ES:下載壓縮包解壓,而後運行elasticsearch.bat就好了
瀏覽器運行:127.0.0.1:9200

b)  ES服務器的三個狀態

            i.     Green—yellow--red

c)  ES的交互方式

            i.     基於restFul 的API交互方式,和全部的客戶端交互都經過json格式的數據交互

           ii.     Java API交互的兩種方式

  1. 節點客戶端
    節點客戶端以無數據節點(none data node)身份加入集羣,換言之,它本身不存儲任何數據,可是它知道數據在集羣中的具體位置,而且可以直接轉發請求到對應的節點上。
  2. 傳輸客戶端
    這個更輕量的傳輸客戶端可以發送請求到遠程集羣。它本身不加入集羣,只是簡單轉發請求給集羣中的節點。
    兩個Java客戶端都經過9300端口與集羣交互,使用ES傳輸協議(ES Transport Protocol)。集羣中的節點之間也經過9300端口進行通訊。若是此端口未開放,你的節點將不能組成集羣。

注意

Java客戶端所在的ES版本必須與集羣中其餘節點一致,不然,它們可能互相沒法識別。

d)  Restful風格的拓展認識

e)  輔助管理工具(kibana)

            i.     ① Kibana5.2.2下載地址:https://www.elastic.co/downloads/kibana

           ii.     ② 解壓並編輯config/kibana.yml,設置elasticsearch.url的值爲已啓動的ES

         iii.     ③ 啓動Kibana5 : bin\kibana.bat

           iv.     ④ 默認訪問地址:http://localhost:5601

  1. 認識ElasticSearch

a)  概念:和Lucene同樣都是用於全文檢索,區別就是Lucene是個全文搜索工具包,而ES是一個全文搜索服務器

b)  全文檢索:基於索引查詢數據的技術,代替了模糊查詢,提升了查詢的效率

c)  Lucene的缺點:使用複雜,只支持JAVA語言環境,Lucene沒法作集羣

d)  而ES彌補了Lucene的不足

            i.     ElasticSearch簡化了全文檢索lucene的使用,同時增長了分佈式的特性,使得構建大規模分佈式全文檢索變得很是容易.

           ii.     ES自己支持集羣,

         iii.     ES對Lucene進行了一個封裝,原來Lucene建立索引是使用一對代碼建立索引,而ES建立索引只用發送一個http請求就行了

  1. 安裝ES服務器

a)  下載ES壓縮包

b)  解壓

c)  啓動bin/elasticsearch.bat

d)  測試是否啓動: http://localhost:9200

e)  啓動kibana時能夠看到ES集羣的健康狀態

  1. ES圖形界面客戶端安裝

1)curl

   windows不支持,須要在linux

2)       火狐的POSTER插件界面

3)       kibana

官方推薦

4)前端head比較屌,能夠直接看到shard和replica

5)postman

a)  這裏選擇kibana可視化界面

            i.     下載壓縮包

           ii.     解壓安裝

         iii.     修改config/kibana.yml配置文件: 設置elasticsearch.url的值爲已啓動的ES的端口路徑

           iv.     啓動kibana

            v.     訪問localhost:5601

  1. ElasticSearch-Head的安裝

a)  解壓壓縮包 ,而後在cmd運行安裝命令
npm install,和運行命令npm run start

安裝完畢後要鏈接ES,須要在elasticsearch/config/elasticsearch.yml中進行配置, http.cors.enabled: true

http.cors.allow-origin: "*",後才能鏈接到ES服務器

相關文章
相關標籤/搜索