当前服务器为CentOS7+ 64bit
groupadd elasticsearch
useradd elasticsearch -g elasticsearch
chown -R elasticsearch:elasticsearch /XXX目录
(https://www.elastic.co/downloads/past-releases)
(https://github.com/spring-projects/spring-data-elasticsearch/wiki/Spring-Data-Elasticsearch---Spring-Boot---version-matrix)
index –> DB
type –> Table
Document –> row
./bin/plugin install mobz/elasticsearch-head
1. https://github.com/mobz/elasticsearch-head下载zip 解压 2. 建立elasticsearch-2.4.0\plugins\head文件 3. 将解压后的elasticsearch-head-master文件夹下的文件copy到head 4. 运行es
${ES_HOME}/bin/plugin --install lukas-vlcek/bigdesk
# 安装完成访问:http://localhost:9200/_plugin/bigdesk/#nodes
${ES_HOME}/bin/plugin -install royrusso/elasticsearch-HQ
# 安装完成访问:http://localhost:9200/_plugin/HQ/
${ES_HOME}/bin/plugin -install lmenezes/elasticsearch-kopf
# 安装完成访问:http://localhost:9200/_plugin/kopf/#!/cluster
官方的文档:
https://github.com/mobz/elasticsearch-head
出处:https://blog.csdn.net/u012888052/article/details/79710429
cd /opt
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.0/elasticsearch-2.4.0.tar.gz
tar -zxvf elasticsearch-2.4.0.tar.gz
mv elasticsearch-2.4.0 /usr/es/elasticsearch
vim /usr/es/elasticsearch/config/elasticsearch/elasticsearch.yml
mkdir /usr/es/data
mkdir /usr/es/logs
可以根据参考官网查找elasticsearch版本对应的ik版本和安装ik的教程
https://github.com/medcl/elasticsearch-analysis-ik
第一步在https://github.com/medcl/elasticsearch-analysis-ik/releases
中找到elasticsearch的ik对应版本,我这里是2.4.0,对应版本为v1.10.0
cd /usr/es/elasticsearch/plugins/
mkdir ik(以root身份)
cd ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v1.10.0/elasticsearch-analysis-ik-1.10.0.zip
unzip elasticsearch-analysis-ik-1.10.0.zip
mv elasticsearch-analysis-ik-1.10.0.zip /opt/elasticsearch-analysis-ik-1.10.0.zip
如果es启动了需要重启才能生效
测试ik以下命令报错
上面这个rest请求在2.4.0版本的es服务器上会执行失败,原因是es 2.3.4上面还没有text这种类型,"type":"text" 改为 "type":"String"即可
如果是5.0版本以上那么
cd /opt
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
tar -zxvf master.zip
mv elasticsearch-head-master /usr/es/elasticsearch-head-master
如果是5.0以下版本那么(参考上面说的几种方式)
cd /usr/es/elasticsearch
./bin/plugin install mobz/elasticsearch-head
增加hostname,设置所有主机都能访问
vim Gruntfile.js
vim _site/app.js
将localhost换成ip,我用的2.4.0用./bin/plugin install mobz/elasticsearch-head方式下载的head插件该js里没有找到该方法,就忽略了
安装node之前如果有自带工具,先卸载之前的node和npm
1.自带工具删除
yum remove nodejs npm -y
2.手动删除残留
进入 /usr/local/lib 删除所有 node 和 node_modules文件夹
进入 /usr/local/include 删除所有 node 和 node_modules 文件夹
进入 /usr/local/bin 删除 node 的可执行文件node和npm
检查 ~ 文件夹里面的"local" "lib" "include" 文件夹,然后删除里面的所有 "node" 和 "node_modules" 文件夹
安装node
cd /opt
mkdir node
cd node
wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
tar -zxvf node-v4.4.7-linux-x64.tar.gz
配置环境变量
vim /etc/profile
#node
export NODE_HOME=/opt/node/node-v4.4.7-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
source /etc/profile
配置环境目录
ln -s /opt/node/node-v4.4.7-linux-x64/bin/node /usr/local/bin/node
ln -s /opt/node/node-v4.4.7-linux-x64/bin/npm /usr/local/bin/npm
在head目录下执行
npm install -g grunt-cli 或 npm install -g grunt //执行后会生成node_modules文件夹
如果5.0以上
cd /usr/es/elasticsearch-head-master
npm install -g grunt-cli
如果5.0以下
cd /usr/es/elasticsearch/plugins/head/
npm install -g grunt-cli
然后后台执行
nohup grunt server &
如果出现
说明Gruntfile.js缺少对应的依赖,可以忽略命令后加上 --force
否则可以去下载对应的module,命令如下:
npm install grunt-contrib-clean
npm install grunt-contrib-concat
npm install grunt-contrib-watch
npm install grunt-contrib-connect
npm install grunt-contrib-copy
npm install grunt-contrib-jasmine
附Grunt常用插件说明:
1)grunt-contrib-uglify:压缩js代码
2)grunt-contrib-concat:合并js文件
3)grunt-contrib-qunit:单元测试
4)grunt-contrib-jshint:js代码检查
5)grunt-contrib-watch:文件监控
6)grunt-contrib-sass:Scss编译
7)grunt-contrib-connect:建立本地服务器
最后后台启动ES(前台启动当然是将 -d去掉啦)
./usr/es/elasticsearch/bin/elasticsearch -d
在浏览器ip:9100访问,如果没有head插件则访问ip:9200
测试一下,往搜索引擎放点数据
curl -XPUT 'http://192.168.110.66:9200/myappname/myblog/1?pretty' -d '{"title":"我的标题","content":"我的内容"}
curl -XPUT 'http://192.168.110.66:9200/myappname/myblog/2?pretty' -d '{"title":"第二篇标题","content":"第二篇内容"}
或者通过head插件插入
读取刚刚录入的数据
curl -XGET 'http://192.168.110.66:9200/myappname/myblog/_search?pretty=true' -d '{"query":{"match_all":{}}}'
或者通过head插件查询
用的是post,不知道为啥get会搜索出全部的,并没有按关键词搜索
测试之前安装的ik插件是否生效
并且实验ik插件不同的切词效果
通过返回结果可以看出,ik_max_word切词把中华人民共和国国歌切成了“中华人民共和国”、“中华人民”、“中华”、“华人”、“人民共和国”、“人民”、“共和国”、“共和”、“国”、“国歌”
也就是说我们搜索这些词中的任意一个都能把这句话搜到,如果不安装ik插件的话,那只会切成:“中”、“华”、“人”、“民”、“共”、“和”、“国”、“国”、“歌”,不够智能,搜索也不好进行了
"analyzer"可以为“ik","ik_smart","ik_max_word”,选择不同的切词效果
上面几条命令都是json形式,elasticSearch就是这么人性化,没治了。
这里面的myappname是你自己可以改成自己应用的名字,这在elasticSearch数据存储中是完全隔离的,而myblog是我们在同一个app中想要维护的不同的数据,就是你的不同数据,比如文章、用户、评论,他们最好都分开,这样搜索的时候也不会混
pretty参数就是让返回的json有换行和缩进,容易阅读,调试时可以加上,开发到程序里就可以去掉了
analyzer就是切词器,我们指定的ik_max_word在前面配置文件里遇到过,表示最大程度切词,各种切,360度切
返回结果里的hits就是“命中”,total是命中了几条,took是花了几毫秒,_score就是相关性程度,可以用来做排序的依据
仅为了测试,将集群部署在一台虚拟机上
cp -R /usr/es /usr/es1
cp -R /usr/es /usr/es2
分别进入到es对应的elasticsearch.yml修改配置文件
vim /usr/es/elasticsearch/config/elasticsearch.yml
cluster1
cluster2
cluster3
cluster.name: es
node.name: es-node03
path.data: /usr/es2/data
path.logs: /usr/es2/logs
network.bind_host: 192.168.110.66
network.publish_host: 192.168.110.66
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
http.port: 9202
tansport.tcp.port: 9302
discovery.zen.ping.unicast.hosts: ["192.168.110.66", "192.168.110.66:9301","192.168.110.66:9302"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.timeout: 40s
discovery.zen.ping.multicast.enabled: false
PS:黑色字体部分为单机配置
su elasticsearch
------------------------------------------------
单机
/usr/es/elasticsearch/bin/elasticsearch -d
集群
/usr/es/elasticsearch/bin/elasticsearch -d
/usr/es1/elasticsearch/bin/elasticsearch -d
/usr/es2/elasticsearch/bin/elasticsearch -d
-------------------------------------------------
cd /usr/es/elasticsearch/plugins/head/
nohup grunt server &
一.运行
编辑 /usr/es/elasticsearch/bin/elasticsearch.in.sh, 设置 ES_MIN_MEM和ES_MAX_MEM,确保二者数值一致,或者可以在启动es时指定,
/usr/es/elasticsearch/bin/elasticsearch -d -Xms512m -Xmx512m
二.关闭
前台运行:可以通过”CTRL+C”组合键来停止运行
后台运行,可以通过”kill -9 进程号”停止.也可以通过REST API接口:
curl -XPOST http://主机IP:9200/_cluster/nodes/_shutdown
来关闭整个集群,通过:
curl -XPOST http://主机IP:9200/_cluster/nodes/节点标示符(如es-node01)/_shutdown
https://blog.csdn.net/m0_38110132/article/details/80390072
https://blog.csdn.net/sulei12341/article/details/52935271
http://www.cnblogs.com/Onlywjy/p/Elasticsearch.html
https://www.cnblogs.com/softidea/p/6081326.html
https://blog.csdn.net/andyzhaojianhui/article/details/75195296