zoukankan      html  css  js  c++  java
  • centos7安装elasticsearch

    摘自腾讯云实验室

    https://cloud.tencent.com/developer/labs/search?keyword=elastics

    安装java

    lasticsearch 需要 java8 以上;
    这里安装最新版的 java10 ;
    下载 jdk

    wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm"
    

    因为版本会一直升级;
    如果执行上面这段代码返回了 ERROR 404: Not Found ;
    那说明有新版本了;
    那就自己去官网复制最新的下载链接;
    http://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html ;

     

    选中 Accept License Agreement 然后在 jdk-10.0.2_linux-x64_bin.rpm 上右键复制链接地址;
    替换上面命令中的下载链接;
    因为从国外下载比较慢;
    为了方便实验;
    我这里把 10.0.2 版本的先下载下来上传到腾讯云了;
    可以用下面的链接代替;
    wget https://study-1251254015.cos.ap-beijing.myqcloud.com/jdk-10.0.2_linux-x64_bin.rpm
    

    安装 jdk 注意文件名要跟链接中的保持一致;

    sudo rpm -ivh jdk-10.0.2_linux-x64_bin.rpm
    

    能查看到版本号则表示安装成功;

    java -version
    

    安装ElasticSearch  

    下载 elasticsearch ;
    官网的下载链接是: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm 因为从国外下载比较慢;
    为了方便实验我给先下载下来上传到腾讯云了;
    可以使用下面的命令代替官网链接;
     
    wget https://study-1251254015.cos.ap-beijing.myqcloud.com/elasticsearch-6.2.4.rpm
    

    安装 elasticsearch ;

    sudo rpm -ivh elasticsearch-6.2.4.rpm
    

    安装完成后编辑配置项;

    vim /etc/elasticsearch/elasticsearch.yml
    
    去掉下面三行的注释;
    bootstrap.memory_lock: true
    network.host: 192.168.0.1
    http.port: 9200
    
    然后把 network.host 改成 localhost
    启动 elasticsearch ;
    sudo systemctl daemon-reload
    sudo systemctl enable elasticsearch.service
    sudo systemctl start elasticsearch
    

      

    稍等片刻给 elasticsearch 个启动的时间;
    因为 elasticsearch 启动的略慢;
    后续涉及到重启 elasticsearch 的时候也都记得稍等片刻;
    然后查看 9200 端口检查是否成功启动;
    netstat -plntu
    
    如果半天过后仍然没有启动起来;
    可能是内存不够出错;
    vim /etc/elasticsearch/jvm.options
    

      

    把内存改为自己服务器内存的一半以下;
    比如说这里改为 512M ;
    image
    尝试启动;
    sudo systemctl restart elasticsearch
    

      

    然后查看 9200 端口检查是否成功启动;
    netstat -plntu
    

      

    查看状态是否正常;
    curl 'localhost:9200'
    

      

    image
    至此 elasticsearch 算是安装完成了;
     
     

    安装中文分词

    安装 ik-analyzer

    但是如果想用来搜索中文;
    还需要安装中文分词;
    怎么算分词呢?
    全文搜索和中文分词 文章中已经简单介绍过了;
    这里我们从 elasticsearch 实战一遍;
    比如说 白俊遥技术博客 这句话;
    elasticsearch 内置的分词器对中文相当不友好;
    只会一个只一个字的分;
    curl -H 'Content-Type: application/json'  -XGET 'localhost:9200/_analyze?pretty' -d '{"text":"白俊遥技术博客"}'
    

      

    image
    所以我们需要一个中文分词器;
    这里选择和 elasticsearch 配套的 ik-analyzer ;
    安装 ik-analyzer ;
    /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.4/elasticsearch-analysis-ik-6.2.4.zip
    

      

    如果报下面这种错误的话可能是网络不好;
    Exception in thread "main" java.net.ConnectException: Connection timed out (Connection timed out)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    

      

    沐浴更衣大念帅白最帅;
    再试几次即可;
    实在不行;
    那还是用我下载好的链接吧;
    
    
    /usr/share/elasticsearch/bin/elasticsearch-plugin install https://study-1251254015.cos.ap-beijing.myqcloud.com/elasticsearch-analysis-ik-6.2.4.zip
    

      

    然后重新启动下服务;
    
    
    sudo systemctl restart elasticsearch
    

      

    然后查看 9200 端口检查是否成功启动;
    
    
    netstat -plntu
    

      

    看下 ik-analyzer 的效果;
    
    
    curl -H 'Content-Type: application/json'  -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"ik_max_word","text":"白俊遥技术博客"}'
    

      

    image
    我们可以看到 技术 和 博客 两个词语已经成功组合到了一起;
    然而本博主 白俊遥 的名字被硬生生的拆成了3个字这怎么忍;
    还好强大的 analysis-ik 支持自定义词库;
    增加自定义词库;
    
    
    vim /etc/elasticsearch/analysis-ik/IKAnalyzer.cfg.xml
    

      

    在 ext_dict 中自定义一个词库文件 baijunyao.dic ;
    image
    增加一个 白俊遥 到词库;
    
    
    echo '白俊遥' > /etc/elasticsearch/analysis-ik/baijunyao.dic
    

      

    重新启动下服务;
    
    
    sudo systemctl restart elasticsearch
    

      

    然后查看 9200 端口检查是否成功启动;
     
    netstat -plntu
    

      

    再看下分词效果 ;
    
    
    curl -H 'Content-Type: application/json'  -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"ik_max_word","text":"白俊遥技术博客"}'
    

      

    image
    完工;
     

     

      

      

      

      

      

     

     
  • 相关阅读:
    107. Binary Tree Level Order Traversal II
    108. Convert Sorted Array to Binary Search Tree
    111. Minimum Depth of Binary Tree
    49. Group Anagrams
    使用MALTAB标定实践记录
    442. Find All Duplicates in an Array
    522. Longest Uncommon Subsequence II
    354. Russian Doll Envelopes
    opencv 小任务3 灰度直方图
    opencv 小任务2 灰度
  • 原文地址:https://www.cnblogs.com/gezifeiyang/p/11007727.html
Copyright © 2011-2022 走看看