今日,由于我负责的开发平台项目二期功能开发中涉及搜索的功能,但由于开发直接Mysql进行全文搜索,会导致index被删除,因此考虑使用Elasticsearch和Ik分词器的结合,达到全文搜索的功能,事不宜迟,开干咯。
    开发负责代码部分,而身为运维工程师的我当然负责安装部署以及功能的测试咯。由于之前没啥了解过Elasticsearch和IK分词器,因此上网搜索了一下,以下是我自己的个人对这两个工具的理解,认为不够深刻的就自己找度娘去,别喷我,就酱。
    Elasticsearch:说白了就是一个全文数据搜索引擎,具有分布式、可实时、可扩展的特点,当你的一堆安静的数据想要被活动起来,不妨可以考虑它。
    IK分词器: 其实就是跟我们中学时候学的对古诗词进行断行同个意思,只是古诗词断的是停顿,而它断的是词语。
    好了,介绍完毕,进行你们最最最着急的安装部署步骤吧!Just do it!!!

    项目设备: 3台Linux系统机器
    设备IP: 10.123.107.2
                 10.123.107.3
                 10.123.107.37
    安装步骤:
    1. Elasticsearch以及IK分词的下载:
        Elasticsearch的下载地址: https://www.elastic.co/downloads/elasticsearch
            IK分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
 2. 下载的软件版本:
        Elasticsearch 6.0.1
            IK     6.0.1
            [两个工具最好下载的版本要一致,否则会出现各种你想象不到的错误]
 3. 解压Elasticsearch至/etc/目录,并重命名为 elasticsearch,并修改相关的文件如下:
         [root@openterrace01 ~]# cat /etc/elasticsearch-6.0.1/config/elasticsearch.yml|grep -v ^$|grep -v ^#
            cluster.name: openels
            node.name: openterrace01
            path.logs: /var/log/openelslog/to/logs
            bootstrap.memory_lock: false
            bootstrap.system_call_filter: false
            network.host: 0.0.0.0
            http.port: 9200
            discovery.zen.ping.unicast.hosts: ["10.123.107.2:9300", "10.123.107.3:9300","10.123.107.37:9300"]
            discovery.zen.minimum_master_nodes: 2
            gateway.recover_after_nodes: 3
            gateway.recover_after_time: 5m
            gateway.expected_nodes: 1
    4. 修改系统参数
            [root@openterrace02 src]# cat /etc/security/limits.conf |grep -v ^$|grep -v ^#
            payeco          soft    nofile          65538
            payeco          hard    nofile          65538
            payeco          hard    nproc           65538
            payeco          soft    nproc           65538

            echo   "payeco          soft    nofile          65538">>/etc/security/limits.conf
            echo   "payeco          hard    nofile          65538">>/etc/security/limits.conf
            echo   "payeco          hard    nproc           65538">>/etc/security/limits.conf
            echo   "payeco          soft    nproc           65538">>/etc/security/limits.conf
       [root@openterrace01 ~]# grep vm.max_map_count /etc/sysctl.conf
         vm.max_map_count=262144
         echo "vm.max_map_count=262144" >>/etc/sysctl.conf
         sysctl -w vm.max_map_count=262144
         sysctl -p
 5. 解压IK分词器文件至/etc/elasticsearch/plugins 目录下并重命名为 ik
 6. 将该ik目录下的 config 目录 复制到 /etc/elasticsearch/config 并重命名为 ik
        [payeco@openterrace01 ik]$ ls
        commons-codec-1.9.jar  commons-logging-1.2.jar  **config**  elasticsearch-analysis-ik-6.0.1.jar  httpclient-4.5.2.jar  httpcore-4.4.4.jar  plugin-descriptor.properties
        [payeco@openterrace01 config]$ ls
        elasticsearch.yml ** ik**  jvm.options  log4j2.properties
    7. 进入/etc/elasticsearch/目录,并以后台的形式启动elasticsearch程序
        ./bin/elasticsearch -d
    8. 验证集群和IK是否加载成功,出现以下图片红色框的则为正确加载
        ![](https://s1.51cto.com/images/blog/201712/28/cd8622343af213a6b60c300341eac951.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)