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

一、 ElasticSearch介紹(簡稱ES)java

  ES即爲了解決原生Lucene使用的不足,優化Lucene的調用方式,並實現了高可用的分佈式集羣的搜索方案。windows

  首先,ES的索引庫管理支持依然是基於Apache Lucene(TM)的開源搜索引擎。api

  ES也使用Java開發並使用Lucene做爲其核心來實現全部索引和搜索的功能,可是它的目的是經過簡單的 RESTful API來隱藏Lucene的複雜性,從而讓全文搜索變得簡單。服務器

  Lucene直接經過java API調用,而ES把這些API調用過程進行了的封裝爲簡單RESTful請求,讓咱們調用起來更加簡單.restful

  不過,ES的核心不在於Lucene,其特色更多的體現爲:curl

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

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

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

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

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

 

   Lucene和ES的聯繫和區別項目中爲啥使用ES而不用Lucene

    聯繫:ElasticSearch封裝了Lucene,讓使用變得更簡單,在高可用上面作得更好。

    區別:ElasticSearch除了擁有Lucene全部優勢之外,還擁有本身優勢.

       可用性:支持集羣,沒有單點故障

       擴展性:支持集羣擴展

     在集羣環境使用:

    ElasticSearch:搜索引擎服務器,全部項目都統一訪問索引服務器,能夠支持在集羣環境使用.

    Lucene :搜索引擎工具包,必須集成到項目中使用,而在集羣環境下,多個服務器都有本身Lucene文件,因此不統一. 不支持在集羣環境使用

     支持多種語言:ElasticSearch支持不少語言,Lucene支持java。

     簡單性:ElasticSearch簡單,都是http請求;而Lucene比較複雜,都要調用API執行一大堆操做

 

  通常lucene在中小型項目中使用(可是也能使用es),而ES在大型項目中使用.由於ES支持在集羣環境使用,而且自身也支持集羣.

 

二、ES的組成&交互方式

  ES由:服務端、客戶端、RestfulAPI組成。

  交互方式(基於Restful API):  

    ES和全部客戶端的交互都是使用JSON格式的數據。

    其餘全部程序語言均可以使用RESTful API,經過9200端口的與ES進行通訊,在開發測試階段,你可使用你喜歡的WEB客戶端, curl命令以及火狐的POSTER插件方式和ES通訊。

 

三、ES的安裝 

  ES服務只依賴於JDK,推薦使用JDK1.7+。

  ① 下載ES安裝包

  官方下載地址:https://www.elastic.co/downloads/elasticsearch

  本文以在window環境下,ES 5.2.2版本爲例,下載對應的ZIP文件。

  ②安裝

      因爲是綠色版本,解壓縮就能安裝.

  ③ 運行ES

    改一下jvm.options,而後在在bin目錄下運行elasticsearch.batbin/elasticsearch.bat)。

 

  ④ 驗證

  訪問:http://localhost:9200/

 

  看到上圖信息,恭喜你,你的ES集羣已經啓動而且正常運行。

 

四、ES的客戶端  

  ES客戶端能夠分爲圖形界面客戶端代碼客戶端

  圖形界面客戶端有多個,要選擇一個合適的。使用選擇好的圖形界面客戶端

和代碼客戶端使用restfulapi操做es服務端。

 4.1 圖形界面客戶端 9200 

   ① Curl命令方式:

  默認windows下不支持curl命令。

 

  ②火狐的POSTER插件界面:

  相似於Firebug,在火狐的「擴展」中搜索「POSTER」,並安裝擴展工具。

  使用POSTER模擬請求的效果

  

  ③輔助管理工具Kibana5

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

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

    ③ 啓動Kibana5 : bin\kibana.bat

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

    Discover:可視化查詢分析器

    Visualize:統計分析圖表

    Dashboard:自定義主面板(添加圖表)

    Timelion:Timelion是一個kibana時間序列展現組件(暫時不用)

    Dev Tools :Console(同CURL/POSTER,操做ES代碼工具,代碼提示,很方便)

    Management:管理索引庫(index)、已保存的搜索和可視化結果(save objects)、設置 kibana 服務器屬性。

 

   4.2 Java代碼客戶端 9300

       略

相關文章
相關標籤/搜索