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
完工;
相关文章
相关标签/搜索