elasticsearch5.1.2安装过程记录
1.环境准备
- 系统版本 CentOS 6.8 64位
- jdk8 elasticsearch5.x后需要jdk8来支持
- 下载elasticsearch5.1.2
- 下载elaticsearch-head
- 下载nodejs
2.安装JDK
2.1解压Jdk安装包
tar -zxvf jdk-8u121-linux-x64.gz 到 /usr/jdk
2.2配置环境变量
vim /etc/profile 添加如下配置
JAVA_HOME=/usr/jdk/jdk1.8
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin:/usr/local/nginx/sbin:$JAVA_HOME/bin
export PATH```
####2.3检查jdk安装
>java -version
>
``` java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)```
<div class="se-preview-section-delimiter"></div>
###3.安装Elasticsearch5.1.2
<div class="se-preview-section-delimiter"></div>
####3.1下载
>wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.2.tar.gz
<div class="se-preview-section-delimiter"></div>
####3.2解压
>tar -zxvf elasticsearch-5.1.2.tar.gz
<div class="se-preview-section-delimiter"></div>
####3.2修改配置
vim {es_home}/confg/elasticsearch.yml 增加如下配置
> cluster.name: zzht-es-cluster
node.name: es-node-1
node.master: true
node.data: true
http.enabled: true
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
<div class="se-preview-section-delimiter"></div>
####3.3启动Elasticsearch
5.1.2Elastic启动会报错,需要修改几个配置
1.vim /etc/security/limits.d/90-nproc.conf
<div class="se-preview-section-delimiter"></div>
- soft nproc 1024
- soft nproc 2048
2.vim /etc/sysctl.conf
<div class="se-preview-section-delimiter"></div>
cat /etc/sysctl.conf | grep vm.max_map_count
vm.max_map_count=655360
如果不存在则添加
echo “vm.max_map_count=655360” >>/etc/sysctl.conf
sysctl -p
3. vim /etc/security/limits.conf
<div class="se-preview-section-delimiter"></div>
- soft nofile 65536
- hard nofile 65536
- soft nproc 2048
- hard nproc 4096
4.ulimit -n 65536
<div class="se-preview-section-delimiter"></div>
###3.安装elasticsearch-head
<div class="se-preview-section-delimiter"></div>
####3.1下载head插件
>wget https://codeload.github.com/mobz/elasticsearch-head/zip/master
<div class="se-preview-section-delimiter"></div>
####3.2下载nodejs
>nodejs官网下载地址https://nodejs.org/dist/
<div class="se-preview-section-delimiter"></div>
####3.3配置node环境变量
>vim /etc/profile 增加如下配置:
>export NODE_HOME=/home/zzht/soft/node-v6.9.4-linux-x64
export PATH=$PATH:$NODE_HOME/bin
<div class="se-preview-section-delimiter"></div>
####3.3安装
>yum -y install gcc make gcc-c++ openssl-devel wget
>./configure
>make && make install
>node -v
>npm -v
<div class="se-preview-section-delimiter"></div>
####3.3安装grunt
>npm install -g grunt-cli
>npm install grunt --save-dev
<div class="se-preview-section-delimiter"></div>
####3.4安装elasticsearch-head的依赖并修改配置
>npm install
>vim Gruntfile.js 增加 hostname:'0.0.0.0',
<div class="se-preview-section-delimiter"></div>
server: {
options: {
hostname:’0.0.0.0’,
port: 9100,
base: ‘.’,
keepalive: true
}
}
“`
vim _site/app.js 修改http://localhost:9200
this.base_uri = this.config.base_uri || this.prefs.get(“app-base_uri”) || “http://101.x.x.x:9200“;
3.5启动elasticsearch-head
grunt server
4.创建同义词索引
4.1创建商品索引
curl -XPUT http://x.x.x.x:9200/goods/
curl -XPOST http://x.x.x.x:9200/goods/goods_info/_mapping
{
“goods_info”: {
“_all”: {
“enabled”: true,
“analyzer”: “ik_max_word”,
“search_analyzer”: “ik_max_word”,
“term_vector”: “no”,
“store”: “false”
},
“properties”: {
“goodsId”: {
“type”: “long”
},
“createTime”: {
“type”: “long”
},
“price”: {
“type”: “double”
},
“refPrice”: {
“type”: “double”
},
“details”: {
“type”: “string”
},
“inventory”: {
“type”: “long”
},
“userId”: {
“type”: “long”
},
“name”: {
“type”: “text”,
“store”: “no”,
“term_vector”: “with_positions_offsets”,
“analyzer”: “synonym”,
“search_analyzer”: “synonym”,
“include_in_all”: “true”,
“boost”: 8
},
“shelfTime”: {
“type”: “long”
},
“goodsImage”: {
“type”: “string”
},
“goodSizes”: {
“type”: “string”
}
}
}
}
4.2更新商品索引的分词设置
curl -XPUT http://x.x.x.x:9200/goods/_settings
{
“index” : {
“analysis” : {
“analyzer” : {
“synonym” : {
“tokenizer” : “whitespace”,
“filter” : [“synonym”]
}
},
“filter” : {
“synonym” : {
“type” : “synonym”,
“synonyms_path” : “analysis/synonym.txt”
}
}
}
}
}
4.3一切准备就绪,最后坑了…
spring Data Elasticsearch的最新版本还是不支持5.1.1,本以为只是初始化的地方不一样,结果修改了一部分,发现jpa的支持实现全都变了,只好放弃,白整合了一个上午。拿最新3.0的snapshot都不支持。
结果还是回到ES2.4.3版本,Spring Data组织不给力啊!只能继续等了。。。。
5参考资料
http://www.tuicool.com/articles/a2yQVrq es5.0集群配置
http://ruby-china.org/topics/21416 Analyzer 的内部机制
https://www.elastic.co/guide/en/elasticsearch/reference/5.1/analysis-synonym-tokenfilter.html Synonym Token Filter
http://blog.csdn.net/yusewuhen/article/details/50685685 同义词分词配置
http://blog.csdn.net/applebomb/article/details/54379602 spring-data的支持
http://stackoverflow.com/questions/32526016/elasticsearch-cant-update-non-dynamic-settings 更新索引分词配置时报错参考