1. 程式人生 > 其它 >Linux下ElasticSearch及IK分詞外掛安裝

Linux下ElasticSearch及IK分詞外掛安裝

ElasticSearch及IK分詞外掛相關安裝

一. 簡介

  • ElasticSearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放原始碼釋出,是當前流行的企業級搜尋引擎。設計用於雲端計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。
  • Elasticsearch-head是一個介面化的叢集操作和管理工具,他是通過html5編寫,可以對叢集進行傻瓜式操作。
  • IK Analyzer是一個開源的,基於java語言開發的輕量級的中文分詞工具包。從2006年12月推出1.0版開始, IKAnalyzer已經推出了4個大版本。最初,它是以開源專案Luence為應用主體的,結合詞典分詞和文法分析演算法的中文分片語件。從3.0版本開 始,IK發展為面向Java的公用分片語件,獨立於Lucene專案,同時提供了對Lucene的預設優化實現。在2012版本中,IK實現了簡單的分詞 歧義排除演算法,標誌著IK分詞器從單純的詞典分詞向模擬語義分詞衍化。

二. 下載軟體包

  • ElasticSearch下載

      官網:https://download.elasticsearch.org/
    

三. 安裝部署

  • 建立worker使用者,下載安裝包到/home/worker/soft

      [worker@222 soft]$ ll
      total 206224
      -rw-r----- 1 worker worker  29007342 Feb 29 16:52 elasticsearch-2.1.1.tar.gz
      -rw-r----- 1 worker worker    899251 Mar 18 15:36 elasticsearch-head-master.zip
      -rw-r----- 1 worker worker 181260798 Dec 23 05:31 jdk-8u65-linux-x64.gz
    
  • 安裝JDK

      #建立目錄,解壓移動JDK到新建目錄下
      cd /home/worker/soft/
      mkdir -p /home/worker/usr/local/
      tar -xf jdk-8u65-linux-x64.gz
      mv jdk1.8.0_65 /home/worker/usr/local/
      
      #新增環境變數
      vim ~/.bash_profile					
      export PATH
      export JAVA_HOME=/home/worker/usr/local/jdk1.8.0_65
      export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
      export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
      
      #修改最大檔案開啟數
      sudo vim /etc/security/limits.d/90-nproc.conf	
      worker     soft    nproc     65535
    
  • 安裝Elasticsearch

      #解壓檔案,移動到指定目錄下
      [worker@222 soft]$ tar -xf  elasticsearch-2.1.1.tar.gz 
      [worker@222 soft]$ mv elasticsearch-2.1.1 /home/worker/opt/
      [worker@222 soft]$ ln -s /home/worker/opt/elasticsearch-2.1.1/ /home/worker/opt/elasticsearch
      [worker@222 soft]$ ll  /home/worker/opt/elasticsearch
      lrwxrwxrwx 1 worker worker 37 Mar 19 02:42 /home/worker/opt/elasticsearch -> /home/worker/opt/elasticsearch-2.1.1/
      
      #修改叢集配置檔案
      /home/worker/opt/elasticsearch/config
      vim elasticsearch.yml
      cluster.name: my-application
      node.name: node-1
      discovery.zen.ping.unicast.hosts: ["host1", "host2"]
      discovery.zen.minimum_master_nodes: 3
      **備註:每個節點的node.name的名字不同**
    
      #配置開機啟動
      echo '/home/worker/opt/elasticsearch/bin/elasticsearch -d' >> /e	tc/rc.local
      echo 'export PATH=/home/worker/opt/elasticsearch/bin/elasticsearch:$PATH' >> ~/.bash_profile
    
      #配置啟動關閉指令碼
      #!/bin/bash
      start(){
      /home/worker/opt/elasticsearch/bin/elasticsearch -d
      }
    
      stop(){
      ps -ef|grep elasticsearch|grep -v grep |awk '{print $2}'|xargs kill -9
      }
    
      restart(){
      /home/worker/opt/elasticsearch/bin/elasticsearch -d && ps -ef|grep elasticsearch|grep -v grep |awk '{print $2}'|xargs kill -9
      }
    
      case $1 in
      start)
      echo 'start elasticsearch.'
      ;;
      stop)
      echo 'stop elasticsearch.'
      ;;
      restart)
      echo 'restart elasticsearch.'
      ;;
      *)
      echo $"Usage: $0 {start|stop|restart}"
      exit 1
      esac
    
      #優化配置
      ES_HEAP_SIZE=2048m
      MAX_OPEN_FILES=65535
    
  • 安裝ik分詞外掛

      #建立ik目錄,將zip包解壓到目錄
      mkdir /home/worker/soft/ik
      cd /home/worker/soft/ik
      unzip ../elasticsearch-analysis-ik-1.7.0.zip
      
      #拷貝ik目錄到elasticsearch配置檔案下
      cp -r config/ik /home/worker/opt/elasticsearch/config/
      
      #重啟elasticsearch服務
      /home/worker/opt/elasticsearch/bin/elasticsearch -d && ps -ef|grep elasticsearch|grep -v grep |awk '{print $2}'|xargs kill -9
    
  • 安裝Elasticsearch-head

      #解壓zip包到plugins目錄下
      cd /home/worker/opt/elasticsearch/plugins
      unzip /home/worker/soft/elasticsearch-head-master.zip
      
      #移動elasticsearch-head-master到head目錄下
      mv elasticsearch-head-master head
      
      #重啟elasticsearch服務
      /home/worker/opt/elasticsearch/bin/elasticsearch -d && ps -ef|grep elasticsearch|grep -v grep |awk '{print $2}'|xargs kill -9
      
      #測試
      http://localhost:9200/_plugin/head/
    

四. 測試ik分詞效果

  • 建立一個索引,名為index
    curl -XPUT http://localhost:9200/index

  • 為索引index建立mapping
    curl -XPOST http://localhost:9200/index/fulltext/_mapping -d' { "fulltext": { "_all": { "analyzer": "ik" }, "properties": { "content": { "type" : "string", "boost" : 8.0, "term_vector" : "with_positions_offsets", "analyzer" : "ik", "include_in_all" : true } } } }'

  • 測試
    curl 'http://localhost:9200/index/_analyze?analyzer=ik&pretty=true' -d ' { "text":"世界如此之大" }'

      #顯示效果
      {
      "tokens" : [ {
      "token" : "text",
      "start_offset" : 4,
      "end_offset" : 8,
      "type" : "ENGLISH",
      "position" : 1
        }, {
      "token" : "世界",
      "start_offset" : 11,
      "end_offset" : 13,
      "type" : "CN_WORD",
      "position" : 2
        }, {
      "token" : "如此",
      "start_offset" : 13,
      "end_offset" : 15,
      "type" : "CN_WORD",
      "position" : 3
        }, {
      "token" : "之大",
      "start_offset" : 15,
      "end_offset" : 17,
      "type" : "CN_WORD",
      "position" : 4
        } ]
      }

本文來自部落格園,作者:白日夢想家Zz,轉載請註明原文連結:https://www.cnblogs.com/zzlain/p/15494650.html