安装ElasticSearch ,以及在yii2中的使用

技巧库 · fecommerce · 于 6个月前 发布 · 785 次阅读

安装ElasticSearch ,以及在yii2中的使用

ElasticSearch 是一款优秀的搜索引擎,用java编写,restful接口的方式进行对接。

FancyEcommce.Com原文链接:安装ElasticSearch ,以及在yii2中的使用

  1. 安装ElasticSearch

安装Java环境 首先检测是否安装java

    java -version  
    echo $JAVA_HOME

如果java的版本过低,建议安装高版本,下面安装的是java 1.8

    cd /opt/    
    wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz"    
    tar xzf jdk-8u66-linux-x64.tar.gz
    cd /opt/jdk1.8.0_66/    
    alternatives --install /usr/bin/java java /opt/jdk1.8.0_66/bin/java 2    
    alternatives --config java

运行了上面的,会初选一个选择的地方,我的机器显示:

    There are 3 programs which provide 'java'.    
        
      Selection    Command    
    -----------------------------------------------    
    *  1           /opt/jdk1.7.0_71/bin/java    
     + 2           /opt/jdk1.8.0_45/bin/java    
       3           /opt/jdk1.8.0_51/bin/java    
       4           /opt/jdk1.8.0_66/bin/java    
        
    Enter to keep the current selection[+], or type selection number: 4

我们安装的是jdk1.8.0.66 所以,我选择的是4,这个看具体情况,jdk1.8.0.66 是第几个,就选择那个数字。

    alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_66/bin/jar 2    
    alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_66/bin/javac 2    
    alternatives --set jar /opt/jdk1.8.0_66/bin/jar    
    alternatives --set javac /opt/jdk1.8.0_66/bin/javac

安装完成,检查版本

    java -version    
        
    java version "1.8.0_66"    
    Java(TM) SE Runtime Environment (build 1.8.0_66-b17)    
    Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

保存到文件 /etc/environment中,当服务器重启的时候加载:

    vi /etc/profile  
      
    export JAVA_HOME=/opt/jdk1.8.0_66    
    export JRE_HOME=/opt/jdk1.8.0_66/jre    
    export PATH=$PATH:/opt/jdk1.8.0_66/bin:/opt/jdk1.8.0_66/jre/bin

重启linux root 查看是否安装成功

    java -version  
    echo $JAVA_HOME

2. 2.1安装ElasticSearch

    cd /tools  
    wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.4.1/elasticsearch-2.4.1.zip  
    mv /elasticsearch-2.4.1 /usr/local/elasticsearch  
    cd /usr/local  
    groupadd elasticsearch  
    useradd -g elasticsearch  elasticsearch  
    chown elasticsearch:elasticsearch -R elasticsearch

需要说明的是elasticSearch直接从2,跳成了5版本,5版本刚出来不久,可能不稳定,我建议还是用2版本

2.2 设置开机启动: 我是本地,直接把iptables 关掉了

    vim /etc/rc.d/rc.local  
    service iptables stop  
    su elasticsearch  -c "/usr/local/elasticsearch/bin/elasticsearch -d"

一定要注意,elasticSearch不能用root账户启动,elasticSearch不能用root账户启动,elasticSearch不能用root账户启动,重要的说三遍。

我这里用的是我新建的elasticsearch账户开机启动

2.3 配置

vim /usr/local/elasticsearch/config/elasticsearch.yml

修改如下:

    cluster.name: TA-application  
    node.name: node-210  
    network.host: 192.168.0.210

其中cluster.name 是集群名称,这个不要使用默认的,要修改,去掉注释,如果有多个机器,加入同一个集群,那么这个值必须一样

noide.name 是集群里面每个节点的值,也就是当前机器的节点的值,这个值,每个节点要不一样。

network host 改成当前的内网ip

2.3 #安装head 插件

    su elasticsearch  
      
    cd  /usr/local/elasticsearch  
      
    bin/plugin install mobz/elasticsearch-head  
      
    #启动:  
      
    bin/elasticsearch -d

2.4 查看:

http://192.168.0.210:9200/

head插件地址:

http://192.168.0.210:9200/_plugin/head/

2.5 集群设置

如果想要建立一个elasticSearch集群,可以按照下面的步骤,非常的简单,首先,想说明的是:对于elasticSearch,他隐藏了分布式的复杂性,分片和复制集,都是他自动完成,你只需要配置好ip就可以了,下面是配置的步骤:

我有两台机器 192.169.0.210 192.168.0.199

我的两台机器都按照上面的步骤配置完成,下面配置集群

首先是192.168.0.210

vim /usr/local/elasticsearch/config/elasticsearch.yml

找到行 , 修改如下:

    discovery.zen.ping.unicast.hosts: ["192.168.0.199"]

上面的ip就是其他的节点的ip,如果我有5台机器,那么,这里需要把其他四台机器的ip写上。

同理,对于其他的节点,需要把其他的节点协商,用逗号隔开

elasticSearch会找到对应的节点,自动分片和做复制集。

  1. 资料片

官方文档:

https://www.elastic.co/guide/en/elasticsearch/reference/5.0/_installation.html

入门教程

http://www.jianshu.com/p/f437b893502a

权威指南

http://es.xiaoleilu.com/

  1. Elasticsearch集群关闭节点
    关闭节点
    关闭节点的API允许关闭集群中的一个或多个(或者全部)节点。下面是一个关闭 _local 节点的例子:
    $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown' 
    也可以通过各自的节点ID来关闭指定的节点(或者像这里说明 的别的选项):
    $ curl -XPOST 'http://localhost:9200/_cluster/nodes/nodeId1,nodeId2/_shutdown' 
    集群的主节点也可以使用下面的方法来关闭:
    $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_master/_shutdown' 
    最后,可以使用如下的任意一种方法来关闭所有的节点:
    $ curl -XPOST 'http://localhost:9200/_shutdown' $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_shutdown' $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_all/_shutdown' 
    延迟
    默认情况下,关闭命令会延迟1秒(1s)之后执行。可以通过设置 delay 参数 来指定延迟的时间。比如:
    $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown?delay=10s' 
    禁用关闭命令
    关闭的API可以通过设置节点里的 action.disable_shutdown 选项来禁用。
  1. Yii2 使用elasticSearch

首先需要安装yii2的elasticSearch插件

https://github.com/yiisoft/yii2-elasticsearch

安装步骤,参看官网的下面的说明,用起来还是不错

里面有聚合功能,可以做一些小规模数据的快速统计。

yii2 elasticSearch的使用说明地址:https://github.com/yiisoft/yii2-elasticsearch/blob/master/docs/guide/README.md

本文由 fecommerce 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。


微信

本帖已被设为精华帖!
共收到 3 条回复 ElasticSearch
jj_jameholl#16个月前 0 个赞

:smile:

jj_jameholl#26个月前 0 个赞

:plus1::

fecommerce#34个月前 0 个赞

最后,推荐一下我的Fecshop ,开源商城,github地址:https://github.com/fancyecommerce/yii2_fecshop

演示地址:http://fecshop.appfront.fancyecommerce.com/

截止到2016-11-12号,产品,分类,首页,评论,用户中心,搜索,多语言,多货币 等功能已经做完,除了购物车和支付部分,其他的基本都已经完成,关注fecshop的 在等2-3个月,也就是明年2,3月份,版本已经就可以出来,2017年4,5月份在把手机web 做一下,预计到明年5月份,后台,pc前台,手机web前台 ,命令控制台 这几个入口 基本可以完善,多谢大家关注和你们的Star,谢谢,我会坚持把他写好。

作者QQ:2358269014

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册