kl个人博客 首页>>爬虫,搜索引擎>>Elasticsearch初探,Windows下环境搭建及集群配置

Elasticsearch初探,Windows下环境搭建及集群配置

Elasticsearch初探,Windows下环境搭建及集群配置

前言,认识Elasticsearch

   ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,

能够达到实时搜索,稳定,可靠,快速,安装使用方便。
我们建立一个网站或应用程序,并要添加搜索功能,令我们受打击的是:搜索工作是很难的。我们希望我们的搜索解决方案要快,

我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,

我们希望能够一台开始并扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。

Elasticsearch旨在解决所有这些问题和更多的问题。

在windows上搭建ES集群

首先去官网下载最新的ES,地址:点我下载   , 这个链接提供的是windows版本的,下载下来的是一个zip压缩文件,解压缩后的文件结构如下:

                          

其实,现在你就可以用cmd进入到bin目录直接运行 elasticsearch.bat来启动你的服务了,但是为了方便在任何目录都能轻松的启动我们的es服务,我们需要把bin目录添加到环境变量中,具体操作如下:


接下来在path变量中引用ES_HOME

现在你已经可以在任意目录使用 elasticsearch 来启动你的服务了,服务启动后,如果没有改配置文件的话,http服务默认监听9200端口,

你可以在地址栏输入localhost:9200来连接你的ES服务,服务正常的话会响应如下类似的信息


{
  "name" : "node-1",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.2.1",
    "build_hash" : "d045fc29d1932bce18b2e65ab8b297fbf6cd41a1",
    "build_timestamp" : "2016-03-09T09:38:54Z",
    "build_snapshot" : false,
    "lucene_version" : "5.4.1"
  },
  "tagline" : "You Know, for Search"
}
安装ES插件

head插件   

ES有很多插件供我们选择,现阶段对我们有用的就是集群管理工具head插件,它是有grunt构建的html5编写的独立网页程序,

你可以通过插件把它集成到es里,有数据库使用经验的都知道,每个数据库都提供了客户端管理软件,如果我们把es类比数据库的话,

那么这个head插件就是我们的数据库客户端管理软件安装插件很简单,可以离线安装,也可以使用命令安装,这里推荐使用命令安装,

方便快捷因为我们配置了环境变量了,所有安装插件的时候也可以任意目录输入如下命令:

  

安装完成后会在我们的plugins目录下多一个head的文件夹,要使用插件,需要重启动你的服务,启动完成后在你的es服务地址后面加上/_plugin/head/,

如:http://localhost:9200/_plugin/head/,服务正常的话,你会看到如下的页面,页面中有很多ES服务的描述信息,以及一目了然的数据信息

中文分词插件      

国内使用的话当然还需要一个中文分词的插件,Elasticsearch默认的分词器对中文的支持不是很好,一元分词,只是单个的去标点的单字拆分,这里我们安装一个smartcn中文分词器,这个在Lucene中文分词那篇文章中有讲到http://www.kailing.pub/article/index/arcid/76.html  

安装分词:plugin install analysis-smartcn  ,安装完成后,重启我们的es服务,可以直接测试分词的效果,下面是我的测试结果:

                                                                                                                                                                                           

集群节点配置

做完以上步奏,我们一直都还没有接触ES服务的配置文件,因为ES都给我们做了默认的处理了,比如http监听端口9200,以及数据存储路径,log日志路径等等,

当我们需要多个多个节点做集群的时候,就一定要配置一些东西了,具体配置如下,我这里是最新版的,不知道版本间有没有很大的差异 :

 cluster.name:elasticsearch      #集群应用的名称

node.name: node-1 #节点的名词 

 network.host: 127.0.0.1 #服务连接发布地址

http.port :9200    #http服务监听端口

 其他的配置暂时默认就好            

 配置完成后启动一个服务,然后拷贝一份ES解压后的目录,配置文件修改如下 :

node.name: node-2 #节点的名词 
http.port :9201   #http服务监听端口

其他的不变,一定要保证集群的应用名称是一致的,然后进入到ES的副本的bin目录下启动服务,成功后用head插件查看,可以看到两个node节点,如下:

     




                                                     

kl个人博客