一、前言
最近有点想弄一个站内搜索的功能,之前学过了Lucene,后来又听过Solr这个名词。接着在了解全文搜索的时候就发现了Elasticsearch这个,他也是以Lucene为基础的。
我去搜了几篇Elasticsearch教程,发现很多都是基于linux的,但我linux耍得并不熟,很少用。仅仅会一些简单的命令,等真正去用到linux的时候再慢慢啃吧。
于是发现了一篇写得很好的教程:
http://blog.csdn.net/laoyang360/article/details/52244917
首先是对Elasticsearch的安装,上面那篇教程也有说,并且给出了一键安装的脚本。这里就用来记录我个人的安装历程吧。
PS:2018年3月22日18:58:12更新:这里我已经不建议在Windows下装Elasticsearch了,因为装起来还是麻烦,也有一堆的小问题~(后面也有在Linux下配置Elasticsearch的过程,建议用linux环境下学习Elasticsearch(要是学生建议去买个服务器,有优惠的),实在不想出钱,用虚拟机也行~
二、Windows下安装Elasticsearch(不建议)
2.1安装Elasticsearch
安装Elasticsearch以window服务的方式来运行,它的给出的版本是2.3.3。于是我也去安装2.3.3了。
在官网上可以在搜索框中查找对应的版本
要以windows服务的方式运行,教程给出的链接已经挂了。我搜到了一篇
http://www.cnblogs.com/viaiu/p/5715200.html
2.2安装head
安装head插件就很简单了,切换到对应的目录下,使用如下命令:
plugin install mobz/elasticsearch-head
2.3安装kibana和Logstash插件以服务形式运行
给出的连接是stackOverFlow下的提问,还有youtobe的视频。stackOverFlow并不能解决我安装过程的问题,youtobe我没联外网,也进不去。
后来,我又找到了一篇教程,也十分顺利:
https://segmentfault.com/a/1190000010741203#articleHeader2
Logstash下载的版本是:2.3.3与Elasticsearch对应起来。
下载kibana的版本是:4.5.0
能够出现下面这种情况,说明安装成功
2.4安装Shield
plugin install license plugin install shield
重启,接着执行:
添加管理员
bin/shield/esusers useradd adminName -r admin
为kibana添加用户
esusers useradd kibanaserver -r kibana4_server
在其配置上(kibana.yml)添加:
kibana_elasticsearch_username: kibanaserver #Kibana服务将用这个用户名访问ElasticSearch服务器。 kibana_elasticsearch_password: zhongfucheng #密码
只有配置了kibanaserver账户、才能登陆进去
2.5安装分词器
这次教程给出的连接就用上了,我截图主要的:
ik分词器的版本是1.9.3。文章给出的是以mvn的方式打包下载。因此在github中我们下载resouce类型的。
解压的时候是在zip解压到当前文件上,把conf的数据拿过去是将其源文件拿过去(不包括文件夹!)
2.6拼音分词器
前面下载了中文分词器,后边在看教程的时候也发现了拼音分词器,拼音分词器的安装和中文分词器安装的时候很类似
对应Elasticsearch2.3.3版本的拼音分词器版本为:1.7.3
Windows下装Elasticsearch到此就结束了。
三、Linux下安装Elasticsearch
这是我搭建一个项目时候的笔记,
3.1下载Elasticsearch
Elasticserach的下载还是非常方便的,提供搜索来进行下载。这里我就不贴链接了。直接去官网找就行了。
下载了2.3.3版本,因为我在windows开发的时候也是下载2.3.3版本的,就为了保持一致吧。
3.2安装Elasticsearch
tar -xzvf elasticsearch-2.3.3.tar.gz
切换到bin目录下执行就行了…
需要这样执行elasticsearch,如果使用的是root用户的话
./elasticsearch -d -Des.insecure.allow.root=true
现在使用下面的语句,是可以获取得到信息的
curl -X GET 'http://localhost:9200'
想要通过外网来访问的话,那么就需要修改配置文件了,参考链接http://blog.csdn.net/u012599988/article/details/51767183
还要在ESC服务器上开放端口才能访问:
3.2.1下载head插件
在下载head插件的时候,需要修改elasticsearch的用户和组,否则它就不让你下载。命令如下
添加用户和组
groupadd elasticsearch useradd elasticsearch -g elasticsearch -p 123456
修改文件夹权限
chown -R elasticsearch:elasticsearch elasticsearch-2.3.3
弄完之后就可以执行命令下载head插件了。
./plugin install mobz/elasticsearch-head
下载完head插件后,不要立马下载shield插件,首先在head插件上创建一个索引!
否则,当下载完shield插件、再访问head插件的话,就无法连接节点了!
这搞了我好长的时间才弄好!!!!!网上也有很多人遇到过这种情况,却没什么好的回答。都在说配置文件上的事情。
我是通过在github中别人提出的issue中找到答案的。参考:https://github.com/mobz/elasticsearch-head/issues/191#issuecomment-132636493
记住了,先在head插件中创建索引、再下载shield插件,否则无法连接head插件!