centos7安装elasticsearch
摘自腾讯云实验室
https://cloud.tencent.com/developer/labs/search?keyword=elastics
安装java
lasticsearch 需要 java8 以上;
这里安装最新版的 java10 ;
下载 jdk
1 | 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 ;
选中 Accept License Agreement 然后在 jdk-10.0.2_linux-x64_bin.rpm 上右键复制链接地址;
替换上面命令中的下载链接;
替换上面命令中的下载链接;
因为从国外下载比较慢;
为了方便实验;
我这里把 10.0.2 版本的先下载下来上传到腾讯云了;
可以用下面的链接代替;
为了方便实验;
我这里把 10.0.2 版本的先下载下来上传到腾讯云了;
可以用下面的链接代替;
1 | wget https: //study-1251254015 .cos.ap-beijing.myqcloud.com /jdk-10 .0.2_linux-x64_bin.rpm |
安装 jdk 注意文件名要跟链接中的保持一致;
1 | sudo rpm -ivh jdk-10.0.2_linux-x64_bin.rpm |
能查看到版本号则表示安装成功;
1 | java -version |
安装ElasticSearch
下载 elasticsearch ;
官网的下载链接是: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm 因为从国外下载比较慢;
为了方便实验我给先下载下来上传到腾讯云了;
可以使用下面的命令代替官网链接;
为了方便实验我给先下载下来上传到腾讯云了;
可以使用下面的命令代替官网链接;
1 | wget https: //study-1251254015 .cos.ap-beijing.myqcloud.com /elasticsearch-6 .2.4.rpm |
安装 elasticsearch ;
1 | sudo rpm -ivh elasticsearch-6.2.4.rpm |
安装完成后编辑配置项;
1 | vim /etc/elasticsearch/elasticsearch .yml |
去掉下面三行的注释;
1 2 3 | bootstrap.memory_lock: true network.host: 192.168.0.1 http.port: 9200 |
然后把 network.host 改成
localhost
启动 elasticsearch ;
1 2 3 | sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch |
稍等片刻给 elasticsearch 个启动的时间;
因为 elasticsearch 启动的略慢;
后续涉及到重启 elasticsearch 的时候也都记得稍等片刻;
然后查看 9200 端口检查是否成功启动;
因为 elasticsearch 启动的略慢;
后续涉及到重启 elasticsearch 的时候也都记得稍等片刻;
然后查看 9200 端口检查是否成功启动;
1 | netstat -plntu |
如果半天过后仍然没有启动起来;
可能是内存不够出错;
可能是内存不够出错;
1 | vim /etc/elasticsearch/jvm .options |
把内存改为自己服务器内存的一半以下;
比如说这里改为 512M ;
比如说这里改为 512M ;

尝试启动;
1 | sudo systemctl restart elasticsearch |
然后查看 9200 端口检查是否成功启动;
1 | netstat -plntu |
查看状态是否正常;
1 | curl 'localhost:9200' |

至此 elasticsearch 算是安装完成了;
安装中文分词
安装 ik-analyzer
但是如果想用来搜索中文;
还需要安装中文分词;
怎么算分词呢?
全文搜索和中文分词 文章中已经简单介绍过了;
这里我们从 elasticsearch 实战一遍;
比如说
elasticsearch 内置的分词器对中文相当不友好;
只会一个只一个字的分;
还需要安装中文分词;
怎么算分词呢?
全文搜索和中文分词 文章中已经简单介绍过了;
这里我们从 elasticsearch 实战一遍;
比如说
白俊遥技术博客
这句话;elasticsearch 内置的分词器对中文相当不友好;
只会一个只一个字的分;
1 | curl -H 'Content-Type: application/json' -XGET 'localhost:9200/_analyze?pretty' -d '{"text":"白俊遥技术博客"}' |

所以我们需要一个中文分词器;
这里选择和 elasticsearch 配套的 ik-analyzer ;
安装 ik-analyzer ;
这里选择和 elasticsearch 配套的 ik-analyzer ;
安装 ik-analyzer ;
1 | /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 |
如果报下面这种错误的话可能是网络不好;
1 2 | Exception in thread "main" java.net.ConnectException: Connection timed out (Connection timed out) at java.base /jdk .internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) |
沐浴更衣大念帅白最帅;
再试几次即可;
实在不行;
那还是用我下载好的链接吧;
再试几次即可;
实在不行;
那还是用我下载好的链接吧;
1 | /usr/share/elasticsearch/bin/elasticsearch-plugin install https: //study-1251254015 .cos.ap-beijing.myqcloud.com /elasticsearch-analysis-ik-6 .2.4.zip |
然后重新启动下服务;
1 | sudo systemctl restart elasticsearch |
然后查看 9200 端口检查是否成功启动;
1 | netstat -plntu |
看下 ik-analyzer 的效果;
1 | curl -H 'Content-Type: application/json' -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"ik_max_word","text":"白俊遥技术博客"}' |

我们可以看到 技术 和 博客 两个词语已经成功组合到了一起;
然而本博主 白俊遥 的名字被硬生生的拆成了3个字这怎么忍;
还好强大的 analysis-ik 支持自定义词库;
增加自定义词库;
然而本博主 白俊遥 的名字被硬生生的拆成了3个字这怎么忍;
还好强大的 analysis-ik 支持自定义词库;
增加自定义词库;
1 | vim /etc/elasticsearch/analysis-ik/IKAnalyzer .cfg.xml |
在 ext_dict 中自定义一个词库文件 baijunyao.dic ;

增加一个 白俊遥 到词库;
1 | echo '白俊遥' > /etc/elasticsearch/analysis-ik/baijunyao .dic |
重新启动下服务;
1 | sudo systemctl restart elasticsearch |
然后查看 9200 端口检查是否成功启动;
1 | netstat -plntu |
再看下分词效果 ;
1 | curl -H 'Content-Type: application/json' -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"ik_max_word","text":"白俊遥技术博客"}' |

完工;
分类:
elasticsearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
2011-06-12 优化你的DiscuzNT3.0,让它跑起来(4)asp.net 缓存和死锁