Elasticsearch实践(1)-搭建及IK中文分词
🔍近期在做商品搜索优化,对比了Solr与Elasticsearch的区别,两者都是基于Lucene实现的封装,但es在数据量越大的情况下实时检索性能优于solr,更适用于实时商品搜索,于是选用了es,下面介绍elasticsearch搜索引擎的搭建及使用,这里使用的是2.2.1的es版本,以及1.8.1的ik分词版本。
安装es及IK中文分词
1. 下载安装包
1 | ##我的环境是Redhat6.4,此处使用的是es2.2.1版本 |
2. 上传安装文件到linux目录并解压
我这里将elasticsearch-2.2.1.tar.gz
文件放至/opt/elasticsearch
目录下。
解压:
1 | cd /opt/elasticsearch |
此时切记不能用 ./bin/elasticsearch
启动,因为在root权限下会提示错误:
1 | Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root. |
3. 新添加一个elasticsearch用户
1 | #添加elasticsearch用户: |
4. 修改配置文件
1 | vi config/elasticsearch.yml |
修改以下内容:
1 | #cluster name |
5. 安装head
head是elasticsearch的可视化工具,可以不用安装head,如果不需要安装,跳过此步骤。
需要注意的是,es2.x的版本head可直接安装,es5.x以上的版本需要先安装nodejs。
5.1. ES2.x.x版本安装head
在/opt/elasticsearch/elasticsearch-2.2.1/
目录下新建文件夹:plugins
1 | cd /opt/elasticsearch/elasticsearch-2.2.1/ |
安装成功即可。启动es之后,访问http://ip:9200/_plugin/head/
即可看到可视化界面。
5.2 ES5.x.x版本安装head
ES5.x版本暂时不支持直接安装,但是head作者提供了另一种安装方法。
1 | git clone git://github.com/mobz/elasticsearch-head.git |
然后打开http://localhost:9100/
访问即可。
如果提示未安装node.js,先安装node.js,
node.js官网:http://nodejs.cn/download/
选择安装包,我这边是64位linux,下载的是https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz
解压(注:如果是虚拟机,不要在共享文件夹中解压,会报Cannot create symlink to
创建软链的错,请放至linux下解压):
1 | xz -d node-v8.11.3-linux-x64.tar.xz |
6. 启动ES
1 | cd /opt/elasticsearch/elasticsearch-2.2.1 |
再访问http://ip:9200/_plugin/head/
即可。
7. 安装IK分词器
在https://github.com/medcl/elasticsearch-analysis-ik
此处选择与es版本对应的ik分词版本,我这里下载的是elasticsearch-analysis-ik-1.8.1.zip,在 /opt/elasticsearch/elasticsearch-2.2.1/plugins
目录下新建文件夹:ik
;将elasticsearch-analysis-ik-1.8.1.zip
的解压文件放入ik
目录下,并将解压后的config
下的ik
文件夹放入 /opt/elasticsearch/elasticsearch-2.2.1/config
下面;
1 | unzip elasticsearch-analysis-ik-1.8.1.zip |
在/config/elasticsearch.yml
文件的最后加上一句话:
1 | "ik" : |
然后启动es,测试分词效果:
1 | curl '10.10.13.234:9200/index/_analyze?analyzer=ik&pretty=true' -d ' |
或者浏览器访问http://ip:9200/_analyze?analyzer=ik&pretty=true&text=sojson在线工具测试分词
,即可看到中文分词效果。
至此,elasticsearch搭建完成,下一篇我们来说下索引的创建。
Elasticsearch实践(1)-搭建及IK中文分词
https://wonderomg.github.io/2018/05/15/Elasticsearch实践搭建及IK中文分词/