搭建ELASTICSEARCH实现中文分词搜索功能

Posted 韩英明的个人笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建ELASTICSEARCH实现中文分词搜索功能相关的知识,希望对你有一定的参考价值。

安装ELASTICSERARCH

yum install bzip2 automake libtool gcc-c++ java-1.8.0-openjdk -y

 

mkdir -p /home/ELK/e

mkdir /home/ELK/e/{data,logs}

useradd elk
tar zxvf elasticsearch-5.5.0.tar.gz
mv elasticsearch-5.5.0 /home/ELK/e/
cd /home/ELK/e/elasticsearch-5.5.0/

vim config/elasticsearch.yml
#修改配置文件以下内容
cluster.name: es_cluster #ES集群名称
node.name: node-1 #这台站点名称
path.data: /home/ELK/e/data #数据存放路径
path.logs: /home/ELK/e/logs #日志存放路径
network.host: 127.0.0.1 #绑定IP,也就是别人访问ES的IP
http.port: 9200 #启动的端口


#以ELK用户启动elasticsearch,如果以root帐号启动会报错
chown -R elk.elk /home/ELK/
nohup su elk -l -c /home/ELK/e/elasticsearch-5.5.0/bin/elasticsearch &

以上为elasticsearch安装步骤。参考文章 http://mengphilip.blog.51cto.com/2243393/1690455

注意: es 必须用普通用户启动,不能用root 启动,否则会报错。

ERROR: bootstrap checks failed
max file descriptors [10240] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [elsearch] likely too low, increase to at least [2048]
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
[2016-11-14T10:22:17,569][INFO ][o.e.n.Node               ] [mysteel-node1] stopping ...
[2016-11-14T10:22:17,615][INFO ][o.e.n.Node               ] [mysteel-node1] stopped
[2016-11-14T10:22:17,615][INFO ][o.e.n.Node               ] [mysteel-node1] closing ...
[2016-11-14T10:22:17,638][INFO ][o.e.n.Node               ] [mysteel-node1] closed

出现上面这个错误的时候,修改

解决:切换到root用户,编辑limits.conf 添加类似如下内容

vi /etc/security/limits.conf 

添加如下内容:

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

 

问题三:max number of threads [1024] for user [lish] likely too low, increase to at least [2048]

解决:切换到root用户,进入limits.d目录下修改配置文件。

vi /etc/security/limits.d/90-nproc.conf 

修改如下内容:

* soft nproc 1024

#修改为

* soft nproc 2048

 

问题四:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

解决:切换到root用户修改配置sysctl.conf

vi /etc/sysctl.conf 

添加下面配置:

vm.max_map_count=655360

并执行命令:

sysctl -p

然后,重新启动elasticsearch,即可启动成功。

参考文章 http://www.cnblogs.com/sloveling/p/elasticsearch.html

下面先安装 分词器,下载地址 https://github.com/medcl/elasticsearch-analysis-ik/releases 我们选择5.50版本的,和ELASTICSEARCH对应的版本

建立ik目录 /home/ELK/e/elasticsearch-5.5.0/plugins/ik 将elasticsearch-analysis-ik上传到这个目录解压

重启elasticsearch即可

验证

curl -XGET \'http://192.168.153.128:9200/_analyze?pretty&analyzer=ik_max_word\' -d \'我是中国人\'

这样分词搜索功能就实现了。参考文章 http://blog.csdn.net/haoxiaoyan/article/details/54668924

 

以上是关于搭建ELASTICSEARCH实现中文分词搜索功能的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch群集搭建介绍,实现高可用

Windows环境下搭建 ElasticSearch

Elasticsearch入门和查询语法分析(ik中文分词)

IKAnalyzer 源码分析-概览

如何开发自己的搜索帝国之安装ik分词器

elasticsearch怎么根据term和range查询