centos7安裝elasticsearch

摘自騰訊雲實驗室html

https://cloud.tencent.com/developer/labs/search?keyword=elasticsjava

安裝java

lasticsearch 須要 java8 以上;
這裏安裝最新版的 java10 ;
下載 jdklinux

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm"

 

由於版本會一直升級;
若是執行上面這段代碼返回了 ERROR 404: Not Found ;
那說明有新版本了;
那就本身去官網複製最新的下載連接;
http://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html ;git

 

選中 Accept License Agreement 而後在 jdk-10.0.2_linux-x64_bin.rpm 上右鍵複製連接地址;
替換上面命令中的下載連接;
由於從國外下載比較慢;
爲了方便實驗;
我這裏把 10.0.2 版本的先下載下來上傳到騰訊雲了;
能夠用下面的連接代替;
wget https://study-1251254015.cos.ap-beijing.myqcloud.com/jdk-10.0.2_linux-x64_bin.rpm

 

安裝 jdk 注意文件名要跟連接中的保持一致;github

sudo rpm -ivh jdk-10.0.2_linux-x64_bin.rpm

 

能查看到版本號則表示安裝成功;json

java -version

 

 

安裝ElasticSearch  

下載 elasticsearch ;
官網的下載連接是:  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm 由於從國外下載比較慢;
爲了方便實驗我給先下載下來上傳到騰訊雲了;
可使用下面的命令代替官網連接;
 
wget https://study-1251254015.cos.ap-beijing.myqcloud.com/elasticsearch-6.2.4.rpm

 

安裝 elasticsearch ;bootstrap

sudo rpm -ivh elasticsearch-6.2.4.rpm

 

安裝完成後編輯配置項;vim

vim /etc/elasticsearch/elasticsearch.yml

 

去掉下面三行的註釋;
bootstrap.memory_lock: true
network.host: 192.168.0.1
http.port: 9200

 

而後把 network.host 改爲  localhost

 

啓動 elasticsearch ;
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch

  

稍等片刻給 elasticsearch 個啓動的時間;
由於 elasticsearch 啓動的略慢;
後續涉及到重啓 elasticsearch 的時候也都記得稍等片刻;
而後查看 9200 端口檢查是否成功啓動;
netstat -plntu

 

若是半天事後仍然沒有啓動起來;
多是內存不夠出錯;
vim /etc/elasticsearch/jvm.options

  

把內存改成本身服務器內存的一半如下;
好比說這裏改成 512M ;
image
嘗試啓動;
sudo systemctl restart elasticsearch

  

而後查看 9200 端口檢查是否成功啓動;
netstat -plntu

  

查看狀態是否正常;
curl 'localhost:9200'

  

image
至此 elasticsearch 算是安裝完成了;
 
 

安裝中文分詞

安裝 ik-analyzerbash

可是若是想用來搜索中文;
還須要安裝中文分詞;
怎麼算分詞呢?
全文搜索和中文分詞 文章中已經簡單介紹過了;
這裏咱們從 elasticsearch 實戰一遍;
好比說  白俊遙技術博客 這句話;
elasticsearch 內置的分詞器對中文至關不友好;
只會一個只一個字的分;
curl -H 'Content-Type: application/json'  -XGET 'localhost:9200/_analyze?pretty' -d '{"text":"白俊遙技術博客"}'

  

image
因此咱們須要一箇中文分詞器;
這裏選擇和 elasticsearch 配套的 ik-analyzer ;
安裝 ik-analyzer ;
/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.4/elasticsearch-analysis-ik-6.2.4.zip

  

若是報下面這種錯誤的話多是網絡很差;
Exception in thread "main" java.net.ConnectException: Connection timed out (Connection timed out)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

  

沐浴更衣大念帥白最帥;
再試幾回便可;
實在不行;
那仍是用我下載好的連接吧;
 
           
/usr/share/elasticsearch/bin/elasticsearch-plugin install https://study-1251254015.cos.ap-beijing.myqcloud.com/elasticsearch-analysis-ik-6.2.4.zip

  

而後從新啓動下服務;
 
           
sudo systemctl restart elasticsearch

  

而後查看 9200 端口檢查是否成功啓動;
 
           
netstat -plntu

  

看下 ik-analyzer 的效果;
 
           
curl -H 'Content-Type: application/json'  -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"ik_max_word","text":"白俊遙技術博客"}'

  

image
咱們能夠看到 技術 和 博客 兩個詞語已經成功組合到了一塊兒;
然而本博主 白俊遙 的名字被硬生生的拆成了3個字這怎麼忍;
還好強大的 analysis-ik 支持自定義詞庫;
增長自定義詞庫;
 
           
vim /etc/elasticsearch/analysis-ik/IKAnalyzer.cfg.xml

  

在 ext_dict 中自定義一個詞庫文件 baijunyao.dic ;
image
增長一個 白俊遙 到詞庫;
 
           
echo '白俊遙' > /etc/elasticsearch/analysis-ik/baijunyao.dic

  

從新啓動下服務;
 
           
sudo systemctl restart elasticsearch

  

而後查看 9200 端口檢查是否成功啓動;
 
netstat -plntu

  

再看下分詞效果 ;
 
           
curl -H 'Content-Type: application/json'  -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"ik_max_word","text":"白俊遙技術博客"}'

  

image
完工;
相關文章
相關標籤/搜索