centos7.0
注意是7.0的系统
elasticsearch-2.2.0.tar.gz
资源地址 : https://www.elastic.co/downloads/past-releases/elasticsearch-2-2-0
注意是 2.2.0 的版本
elasticsearch-analysis-ik-1.8.0.zip
资源地址 : https://github.com/medcl/elasticsearch-analysis-ik/releases
注意是 1.8.0 的版本
tar -zxvf elasticsearch-2.2.0.tar.gz
解压 elasticsearch
mv elasticsearch-2.2.0 elasticsearch
改名 elasticsearch 的安装目录(强迫症...)
mv elasticsearch-2.2.0.tar.gz elasticsearch/
把压缩包移至elasticsearch的安装目录(强迫症...)
tar -zxvf elasticsearch-analysis-ik-1.8.0.zip
解压 elasticsearch-ik
mv elasticsearch-analysis-ik-1.8.0 elastic-ik
改名 elasticsearch-ik 的安装目录(强迫症...)
mv elasticsearch-analysis-ik-1.8.0.zip elastic-ik/
把压缩包移至elastic-ik的安装目录(强迫症...)
yum install maven
安装 maven
cd path/elastic-ik
进入你的elastic-ik的安装目录
mvn clean
mvn compile
mvn package
mkdir /home/seven/elasticsearch/plugins/ik
创建ik分词插件的目录
cp target/releases/elasticsearch-analysis-ik-1.8.0.zip /home/seven/elasticsearch/plugins/ik/
把target/releases下的压缩文件拷贝到elasticsearch的ik插件目录下
cd /home/seven/elasticsearch/plugins/ik
进入elasticsearch的ik插件目录
unzip elasticsearch-analysis-ik-1.8.0.zip
解压这个ik压缩文件
# 此配置文件位于elasticsearch安装目录下的config目录中
# 我只把我显示指定的配置项列了出来 :
cluster.name: waringstates
集群的名称
若是同一个网段下几个机子要构成集群,该配置项必须相同
node.name: node-1
该结点的名称
若是同一个网段下几个机子要构成集群,该配置项必须不同
path.data: /mydata/elasticsearch/data
数据存储路径
path.logs: /mydata/elasticsearch/logs
日志存储路径
network.host: ******
绑定的ip地址
该值可以填 : 127.0.0.1 or 内网地址 or 公网地址
http.port: 9200
绑定的端口
path.repo: ["/mydata/elasticsearch/backup"]
数据备份的路径
// 我把自己一个APP里面搜索文章的示例作为示范
// 它根据用户输入的一句话,来搜索最匹配的若干篇文章( 根据文章的标题,标签,正文等,给予不同的匹配权重 )
a. 创建一个测试用的索引
curl -XPUT 127.0.0.1:9200/deepnote
b. 创建一个mapping
curl -XPOST 127.0.0.1:9200/deepnote/notes/_mapping -d'{
"mappings" : {
"notes" : {
"properties" : {
"title" : { "type" : "string", "analyzer" : "ik_smart" },
"tags" : { "type" : "string", "analyzer" : "ik_smart" },
"refer" : { "type" : "string", "analyzer" : "ik_max_word" },
"feel" : { "type" : "string", "analyzer" : "ik_max_word" }
}
}
}
}'
c. 查询测试
curl -XPOST 127.0.0.1:9200/deepnote/notes/_search -d '{
"size" : 10,
"sort" : [ { "_score" : { "order" : "desc" } } ],
"query" : {
"filtered" : {
"query" : {
"bool" : {
"should" : [
{ "match" : { "title" : { "query" : 此处填一句话, "boost" : 此处填整数权重 } } },
{ "match" : { "tags" : { "query" : 此处填一句话, "boost" : 此处填整数权重 } } },
{ "match" : { "refer" : { "query" : 此处填一句话, "boost" : 此处填整数权重 } } },
{ "match" : { "feel" : { "query" : 此处填一句话, "boost" : 此处填整数权重 } } }
]
}
}
}
}
}'
# 因为elasticsearch目前还没有用户权限的概念,因此必须做好安全防护
# 当你需要在公网上访问elasticsearch的时候,建议要限制可以访问的IP
# 通常,我们使用 iptables 来限制ip
systemctl stop firewalld
systemctl mask firewalld
centos7 默认使用的是firewall,因此需要先关闭它
yum install iptables-services
安装iptables service
systemctl enable iptables
开机启动iptables-service
systemctl start iptables
启动iptables
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
开启ssh的22端口
!! 注意,别忘了把你之前的一些对外的端口信息配置一下,否则会导致无法连接
!! 注意,尤其注意先把ssh配好,否则呵呵哒...
iptables -I INPUT -s want_ip -p tcp --dport 9200 -j ACCEPT
开启9200端口(elasticsearch),且只对want_ip这个ip开放
service iptables save
保存iptables的配置
service iptables restart
重启iptables
curl -XGET 公网ip:9200/?pretty
测试访问elasticsearch
当你在 want_ip 这个机子上执行这条命令,是有返回值的
当你在 其他机子上执行这条命令,是连不上的