docker EleasticSearch(一) 介紹與安裝

使用場景

需要智能分詞並模糊搜索的場景

ES和MySQL區別

  1. ES是基於NoSQL非關係型數據庫來實現;MySQL是基於傳統RDBMS關係型數據庫來實現。

  2. MySQL作爲開源關係型數據庫,應用範圍非常廣泛,非常適合於結構化數據存儲和查詢。在數據查詢場景下,默認返回所有滿足匹配條件的記錄;而ES作爲新生代NoSQL數據庫代表之一,非常適合於非結構化文檔類數據存儲、更創新支持智能分詞匹配模糊查詢。比如在電商網站商品搜索欄中,用戶輸入以空格爲分隔符的字符串(如:家電電視等),後臺ES數據庫搜索引擎會根據用戶輸入的信息,對數據庫中保存的非結構化數據進行分詞模糊匹配查詢,返回滿足匹配條件的前N條記錄給用戶;另外ES更典型應用在於根據用戶瀏覽記錄日誌來追蹤用戶行爲,智能推送用戶期望瀏覽的數據信息,此時通常藉助ELK三大組件互相配合完成。

  3. 關於如何在MySQL和ES之間做到合理技術選型,總結爲:如果業務數據爲結構化數據,同時不需要特別關注排名和智能分詞模糊匹配查詢等特性,則建議採用關係型數據庫如MySQL來作爲數據存儲介質並使用配套搜索引擎;反之,如果業務數據爲非結構化數據,同時更關注排名和需要智能分詞模糊匹配的特性,則建議採用非關係型數據庫如ES作爲數據存儲介質並使用配套搜索引擎。

安裝

官方安裝文檔 https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run

安裝環境
此次爲mac os10.14.5,linux或windows可參考官方文檔

首先,調出mac terminal命令行工具,輸入

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

sysctl -w vm.max_map_count=262144

然後,執行安裝命令

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2

docker run -p 9200:9200 -p 9300:9300 -d -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2

測試

輸入

http://localhost:9200/

返回下邊內容則表示安裝成功

{
  "name" : "qUBX3iQ",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "zbvX-TzdQKStiC_k_rJAKw",
  "version" : {
    "number" : "6.3.2",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "053779d",
    "build_date" : "2018-07-20T05:20:23.451332Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

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