ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题及可能出现的更多其它问题。
最近在使用Elasticsearch做一款基于分布式爬虫的全文搜索引擎,涉及到一些安装和配置,所以写这篇文章做一个简单的记录。其中Elasticsearch-head和kibana都是对Elasticsearch的项目支持。
一、安装elasticsearch-rtf
为什么要选择elasticsearch-rtf而不是直接安装官方的elasticsearch呢?
因为在官方的elasticsearch安装好之后任然需要进行诸多配置,需要安装很多插件才能达到较优的体验效果。国内有一位大神将很多插件已经集成到了elasticsearch中,形成了一款新的elasticsearch-rtf。
RTF是Ready To Fly的缩写,在航模里面,表示无需自己组装零件即可直接上手即飞的航空模型,Elasticsearch-RTF是针对中文的一个发行版,即使用最新稳定的elasticsearch版本,并且帮你下载测试好对应的插件,如中文分词插件等,目的是让你可以下载下来就可以直接的使用(虽然es已经很简单了,但是很多新手还是需要去花时间去找配置,中间的过程其实很痛苦),当然等你对这些都熟悉了之后,你完全可以自己去diy了,跟linux的众多发行版是一个意思。
我们可以直接进入到github中,全站搜索elasticsearch-rtf :
具体的安装过程这里不详细介绍,可以直接使用git命令clone到本地,或者直接点击右上角的download进行下载 ,另外作者提供了百度网盘的下载链接,整个项目大概200mb:
下载完成后,进入到elasticsearch的bin目录下,在cmd下输入下面的命令,就可以启动elasticsearch:
elasticsearch.bat
等待命令运行:
出现上面的输出就说明,elasticsearch已经启动了,我们在127.0.0.1:9200端口中可以访问,如果浏览器中出现了如下的json字符串就说明启动成功:
二、安装elasticsearch-head
elasticsearch-head可以基于elasticsearch的REST API接口,将各种数据以界面的形式进行展示,就好比数据库的可视化工具。
同样我们在github中全局搜索elasticsearch-head即可找到开源的代码,直接进行下载。
git clone git://github.com/mobz/elasticsearch-head.git
在下载后之后,我们需要保证本机上有node环境,因为我们需要使用node自带的npm包管理器进行本地部署。
在node官网当中进行node安装包的下载,并且完成安装:
接着进入到插件的根目录下打开命令行,执行下面的命令:
cd elasticsearch-head
npm install
npm run start
看到上面的提示符就算启动成功了,我们直接打开127.0.0.1:9100端口查看,出现下面的界面:
此时还有一个问题,那就是,右上角的集群健康值:未连接,这说明并没有链接到9200端口,所以可能是由于跨域造成了链接禁止。出现这样的情况很简单,我们只需要对elasticsearch的elasticsearch.yml文件进行配置即可。
elasticsearch.yml文件在根目录的config目录下。
将下面的字段输入到文件当中即可:
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"
此时我们重新运行elasticsearch和elasticsearch-head,会发现已经链接成功:
三、安装kibana
由于我们在安装elasticsearch的时候选择的是修改版的elasticsearch-rtf,而这个rtf版本是基于elasticsearch的5.1.1版本进行改造的,所以要求我们安装kibana的版本必须要和elasticsearch-rtf保持一致,也为5.1.1版本。
首先进入到kibana官网当中:
找到past releases:
下载好后,进入到跟目下,我们还是通过bin目录启动kibana:
从bin目录中进入命令行中,输入:
kibana.bat
默认在127.0.0.1:5601端口启动,在浏览器中打开后进入到如下的界面当中:
在左边的导航栏中我们可以看到dev tools这个选项,而我们对elasticsearch项目的打造,主要就依靠这一插件。