ElasticSearch 安裝 (單機(jī)單節(jié)點(diǎn)/單機(jī)多節(jié)點(diǎn))
ElasticSearch 簡介
ElasticSearch(ES) 現(xiàn)在已經(jīng)隨著技術(shù)發(fā)展越來越火爆了鞠值。它基于Lucence搜索引擎媚创,實現(xiàn)RestFul風(fēng)格,開箱即用彤恶。廣泛用于在網(wǎng)站上做站內(nèi)搜索钞钙。
下載
這個變焦簡單了,會上網(wǎng)的人應(yīng)該都會声离。
安裝
ES 下載解壓后芒炼,配置文件主要在config
目錄下,
包含文件:elasticsearch.yml
,jvm.options
,log4j2.properties
术徊。
這三個文件分別對應(yīng)ES配置
本刽,JVM配置
,ES日志配置
赠涮。我們這里只討論elasticsearch.yml
的配置子寓,其他的暫時不論。
單機(jī)單節(jié)點(diǎn)
單機(jī)單節(jié)點(diǎn)最爽了世囊,為啥别瞭?因為簡單啊窿祥。進(jìn)入到解壓后文件夾的bin
目錄株憾,然后window平臺雙擊elasticsearch.bat
,*nix平臺使用sh elasticsearch
,之后再在控制臺中看到如下,有個started
:
因為我們什么配置都沒改晒衩,所以ES使用默認(rèn)配置嗤瞎,http端口為9200,TCP端口為9300听系。
這個時候我們訪問下接口:curl -XGET localhost:9200
,或者瀏覽器打開localhsot:9200
,就會看到下面的輸出:
單機(jī)很簡單贝奇,真的很簡單。
單機(jī)多節(jié)點(diǎn)(偽集群)
部署完單機(jī)靠胜,下面就是集群了掉瞳。集群毕源,什么是集群了?一個服務(wù)在多臺機(jī)器上部署陕习,并且這些服務(wù)之間彼此之間內(nèi)部高度緊密協(xié)作擁有某種聯(lián)系霎褐,我們可以當(dāng)作是這個服務(wù)的集群。在某種含義上该镣,可以認(rèn)為是一臺服務(wù)器冻璃。
ES 偽集群:es服務(wù)在同一臺機(jī)器上根據(jù)不同的端口啟動服務(wù),構(gòu)成在本機(jī)上的一個集群模式损合。
以此為基礎(chǔ)省艳,我們來看看怎么配置。
主要用到的配置屬性有這些嫁审,
我的本地ip地址為:192.168.11.21
,
master 的 elasticsearch.yml:
cluster.name: notice-application
node.name: master
node.master: true
network.host: 192.168.11.21
# network.bind_host: 192.168.11.21
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["192.168.11.21:9300","192.168.11.21:9310","192.168.11.21:9320"]
slave1 的 elasticsearch.yml:
cluster.name: notice-application
node.name: slave1
# network.publish_host: 192.168.11.21
# network.bind_host: 192.168.11.21
network.host: 192.168.11.21
http.port: 9210
transport.tcp.port: 9310
discovery.zen.ping.unicast.hosts: ["192.168.11.21:9300","192.168.11.21:9310","192.168.11.21:9320"]
slave2 的 elasticsearch.yml:
cluster.name: notice-application
node.name: slave2
# network.publish_host: 192.168.11.21
# network.bind_host: 192.168.11.21
network.host: 192.168.11.21
http.port: 9220
transport.tcp.port: 9320
discovery.zen.ping.unicast.hosts: ["192.168.11.21:9300","192.168.11.21:9310","192.168.11.21:9320"]
上面的配置跋炕,如果要你要體驗下可以拷貝到你自己的ES中,將IP改成你的本地ip就可以看到了律适。
推薦一個圖形化工具:elasticsearh-head,這貨盡然還推出了Chrome 插件枣购。簡直完美。
安裝之后你就可以head插件看到集群配置了擦耀,下面是我的集群啟動棉圈,電腦配置不太夠,只啟動了兩臺服務(wù)眷蜓。
現(xiàn)在說正題分瘾,我們說下配置:
-
cluster.name
: 它指代的是集群的名字,一個集群的名字必須唯一吁系,節(jié)點(diǎn)根據(jù)集群名字加入到集群中 -
node.name
: 節(jié)點(diǎn)名稱德召,可以是自定義的方便分辨的名字,記住master也是一個節(jié)點(diǎn)汽纤。eg:master,slave -
node.master
: true/false 是否是集群中的主節(jié)點(diǎn)上岗。 -
network.host
: 設(shè)置network.bind_host
和publish_host
的默認(rèn)值,這里設(shè)置成127.0.0.1和主機(jī)ip是有區(qū)別的蕴坪,你可以使用curl -XGET “http://network.host/9200"看到結(jié)果 -
network.bind_host
: 綁定服務(wù)器ip地址 -
network.publish_host
: 綁定發(fā)布的地址 -
http.port
: HttpRest 的接口肴掷,這個接口可以讓你在瀏覽器訪問 -
transport.tcp.port
: 給Java或者其它節(jié)點(diǎn)的服務(wù)端口,代碼里面用這個背传。 -
discovery.zen.ping.unicast.hosts
: 這里是一組IP,我一般是使用ip:port
這種書寫方式呆瞻,還有很多種方式,詳情:zen的介紹
安裝中文分詞插件
ElasticSearch 默認(rèn)的分詞器對于中文的分詞不是特別友好径玖,英文的詞使用空格隔開的痴脾,但是中文就不一樣了。默認(rèn)的分詞器會將中文的字一個一個拆分梳星,比如“中國”赞赖,默認(rèn)的分詞器就是“中”滚朵,“國”,然后去匹配前域。所以我們需要安裝一個中文分詞器始绍,這里我選擇的是IK插件,它提供了一些友好的中文分詞器话侄,并且支持熱更新分詞熱更新亏推,注意根據(jù)自己的ES版本來選擇IK的版本。github的readme上有兩種安裝方式年堆,一種是用命令行模式:./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.0.0/elasticsearch-analysis-ik-6.0.0.zip
吞杭。
另一種就是解壓縮包安裝方式,去https://github.com/medcl/elasticsearch-analysis-ik/releases下載合適的release版本变丧,然后解壓到ES根目錄下的plugins目錄芽狗。
IK 提供了兩種分詞器:ik_max_word
和ik_smart_word
。
原文地址:http://chenzhijun.me/2017/12/01/elasticsearch-install/
歡迎一起交流痒蓬。