ElasticSearch入門(一)單節點初體驗

背景

  • What:ElasticSearch 是一個分佈式、RESTful風格的搜索和數據分析引擎。以下簡稱ES

  • Features: 具有近實時的全文檢索能力、極其方便的橫向擴展能力,怎麼理解呢?可以簡單理解爲快、有彈性。

  • Why: 我們知道要在傳統的RDBMS中做搜索,尤其是全文搜索時,我們的選擇基本就是LIKE,這在數據量大時,性能急劇下降;ES作爲MySQL等關係型數據庫的LIKE功能出現(當然這只是簡單的類比),基於Apache的Lucene實現,提供RESTful風格的操作(增刪改查)。隨着ES生態的不斷繁榮,結合ELK(ElasticSearch, Logstash, Kibana)技術棧,ES的口號除了全文檢索,又多了數據分析。是全文檢索、數據分析、統計展現的一把利器。

下載

到ElasticSearch官網,下載對應操作系統的版本:https://www.elastic.co/cn/start

我這裏是Windows版的,目前爲 7.5.2,完成後解壓。

啓動

打開命令行,執行:

cd elasticsearch-7.5.2\bin
.\elasticsearch.bat

ES默認在9200端口啓動,瀏覽器訪問:http://localhost:9200

2020-02-20-ElasticSearch-Startup.jpg

此時,還可通過_cat/health API 查看ES節點的健康狀態:curl http://localhost:9200/_cat/health?v

2020-02-20-ElasticSearch-Health.jpg

可以看到節點基本信息及狀態:1個節點,11個分片等

注意這裏標出當前的statusyellow,ElasticSearch集羣健康狀態最佳時爲green。現在是因爲我們僅啓動了一個節點,鑑於ElasticSearch本身的橫向擴展能力即爲方便,實際生產環境中都是以集羣的方式提供服務,方便各節點間數據的同步以實現彈性可擴展,ES要求單節點的集羣狀態達不到green,最佳只是yellow。當然,如果狀態爲red,那就要引起注意了,集羣數據有問題了。。

測試

單節點的ES集羣跑起來了,那麼接下來就可以把玩一番了,增刪改查搞起來。剛開始建議用Postman,或者在命令行直接發出curl請求,方便上手,後期可以使用ELK技術棧中的Kibana提供的開發工具執行DSL

以下以curl爲例進行測試:

curl -X PUT "localhost:9200/movie/_doc/1?pretty" -H 'Content-Type: application/json' -d'{"name": "Fantasy Island"}'

2020-02-20-ES-INSERT.png

curl -X GET "localhost:9200/movie/_doc/1?pretty"

2020-02-20-ES-SELECT.jpg

curl -X PUT "localhost:9200/movie/_doc/1?pretty" -H 'Content-Type: application/json' -d'{"name": "JOKER"}'
curl -X GET "localhost:9200/movie/_doc/1?pretty"

2020-02-20-ES-Update.jpg

curl -X DELETE "localhost:9200/movie/_doc/1?pretty"
curl -X GET "localhost:9200/movie/_doc/1?pretty"

2020-02-20-ES-DELETE.jpg

這裏僅是簡單的增刪改查,後續針對查詢分別介紹:簡單查詢、條件查詢、聚合查詢、複合查詢等。


If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章