Linux安裝ElasticSearch,Elasticsearch安裝輔助插件,IK分詞器安裝,使用IK分詞器


 

1 ElasticSearch 安裝

1.1 ElasticSearch安裝

1、上傳ElasticSearch安裝包

alt+p # 打開sftp窗口
# 上傳es安裝包
put e:/software/elasticsearch-7.4.0-linux-x86_64.tar.gz

 

 

 

 

2、執行解壓操作 ,如下圖

 # 將elasticsearch-7.4.0-linux-x86_64.tar.gz解壓到opt文件夾下. -C 大寫
 tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz  -C /opt

 

3、創建普通用戶

因為安全問題,Elasticsearch 不允許root用戶直接運行,所以要創建新用戶,在root用戶中創建新用戶,執行如下命令:

useradd itheima  # 新增itheima用戶
passwd  itheima  # 為itheima用戶設置密碼

 

5、為新用戶授權,如下圖

chown -R itheima:itheima /opt/elasticsearch-7.4.0 #文件夾所有者

 

 

 

將 /opt/elasticsearch-7.4.0文件夾授權給itheima用戶,由上圖可見,我們的文件夾權限賦給了itheima

6、修改elasticsearch.yml文件

vim /opt/elasticsearch-7.4.0/config/elasticsearch.yml 
# ======================== Elasticsearch Configuration =========================
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

 

cluster.name:配置elasticsearch的集群名稱,默認是elasticsearch。建議修改成一個有意義的名稱

node.name:節點名,elasticsearch會默認隨機指定一個名字,建議指定一個有意義的名稱,方便管理

network.host:設置為0.0.0.0允許外網訪問

http.port:Elasticsearch的http訪問端口

cluster.initial_master_nodes:初始化新的集群時需要此配置來選舉master

7、修改配置文件

新創建的itheima用戶最大可創建文件數太小,最大虛擬內存太小,切換到root用戶,編輯下列配置文件, 添加類似如下內容

# 切換到root用戶
su root 
​
#1. ===最大可創建文件數太小=======
vim /etc/security/limits.conf 
# 在文件末尾中增加下面內容
itheima soft nofile 65536
itheima hard nofile 65536
# =====
vim /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面內容
itheima soft nofile 65536
itheima hard nofile 65536
*  hard    nproc     4096
# 注:* 代表Linux所有用戶名稱 
​
#2. ===最大虛擬內存太小=======
vim /etc/sysctl.conf
# 在文件中增加下面內容
vm.max_map_count=655360
# 重新加載,輸入下面命令:
sysctl -p

 

8、啟動elasticsearch

#switch user
su itheima  # 切換到itheima用戶啟動
cd /opt/elasticsearch-7.4.0/bin
./elasticsearch #啟動

 

 

 

通過上圖我們可以看到elasticsearch已經成功啟動

1.2 訪問elasticsearch

1、在訪問elasticsearch前,請確保防火牆是關閉的,執行命令:

#暫時關閉防火牆
systemctl  stop  firewalld
​
# 或者
#永久設置防火牆狀態
systemctl enable firewalld.service  #打開防火牆永久性生效,重啟后不會復原 
systemctl disable firewalld.service #關閉防火牆,永久性生效,重啟后不會復原 

 

瀏覽器輸入http://192.168.52.128:9200/,如下圖

 

 

此時elasticsearch已成功啟動:

重點幾個關注下即可:
number" : "7.4.0"   表示elasticsearch版本
lucene_version" : "8.2.0"  表示lucene版本
name : 默認啟動的時候指定了 ES 實例名稱
cluster_name : 默認名為 elasticsearch

 

 

2 Elasticsearch輔助插件安裝

2.1 Postman安裝

1、什么是Postman

Postman是一個http模擬請求的工具。

官網介紹:“Modern software is built on APIs,Postman helps you develop APIs faster”

看得出來,它是一個專門測試 API 的工具,Postman 提供功能強大的 Web API 和 HTTP 請求的調試,它能夠發送任何類型的HTTP 請求 (GET, POST, PUT, DELETE…),並且能附帶任何數量的參數和 Headers。不僅如此,它還提供測試數據和環境配置數據的導入導出。

進入官網www.getpostman.com,下載

2.2 Kibana安裝

1、什么是Kibana

Kibana是一個針對Elasticsearch的開源分析及可視化平台,用來搜索、查看交互存儲在Elasticsearch索引中的數據。使用Kibana,可以通過各種圖表進行高級數據分析及展示。

Kibana讓海量數據更容易理解。它操作簡單,基於瀏覽器的用戶界面可以快速創建儀表板(dashboard)實時顯示Elasticsearch查詢動態。

2、上傳kibana

CRT中克隆一個窗口,上傳Kibana

put ‪E:\software\kibana-7.4.0-linux-x86_64.tar.gz

 

2、解壓kibana

tar -xzf kibana-7.4.0-linux-x86_64.tar.gz -C /opt

 

解壓到當前目錄(/opt)下

3、修改kibana配置

vim /opt/kibana-7.4.0-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
server.name: "kibana-itcast"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
elasticsearch.requestTimeout: 99999

 

server.port:http訪問端口

server.host:ip地址,0.0.0.0表示可遠程訪問

server.name:kibana服務名

elasticsearch.hosts:elasticsearch地址

elasticsearch.requestTimeout:請求elasticsearch超時時間,默認為30000,此處可根據情況設置

4、啟動kibana

由於kibana不建議使用root用戶啟動,如果用root啟動,需要加--allow-root參數

# 切換到kibana的bin目錄
cd /opt/kibana-7.4.0-linux-x86_64/bin
# 啟動
./kibana --allow-root

 

 

 

啟動成功。

5、訪問kibana

1.瀏覽器輸入http://192.168.52.128:5601/,如下圖:

http://192.168.52.128:5601/

 

 

看到這個界面,說明Kibanan已成功安裝。

Discover:可視化查詢分析器 Visualize:統計分析圖表 Dashboard:自定義主面板(添加圖表) Timelion:Timelion是一個kibana時間序列展示組件(暫時不用) Dev Tools:Console控制台(同CURL/POSTER,操作ES代碼工具,代碼提示,很方便) Management:管理索引庫(index)、已保存的搜索和可視化結果(save objects)、設置 kibana 服務器屬性。

2.3 head安裝

Tips: 課后擴展內容

head簡介

ead插件是ES的一個可視化管理插件,用來監視ES的狀態,並通過head客戶端和ES服務進行交互,比如創建映射、創建索引等。

在登陸和訪問head插件地址和ElasticSearch前需要事先在服務器上安裝和配置好ElasticSearch以及head插件。安裝完后,默認head插件的web端口為9100,ElasticSearch服務的端口為9200,使用瀏覽器訪問head地址,如http://IP地址:9100/,推薦使用Chrome瀏覽器,head插件對Chrome瀏覽器兼容更佳。進入head頁面后將ElasticSearch連接輸入框中填寫正確的ElasticSearch服務地址,就可以監控ElasticSearch運行信息

2.3.1 Node安裝

1) 什么是Node

簡單的說 Node.js 就是運行在服務端的 JavaScript。Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。Node.js 的包管理器 npm,是全球最大的開源庫生態系統。

2) 下載Node

上一節我們已經安裝好了Elasticsearch,接下來我們來安裝head插件,由於elasticsearch-head插件是由nodejs語言編寫,所以安裝elasticsearch-head前需要先安裝nodejs。 首先,執行以下命令安裝nodejs和grunt

打開虛擬機,執行wget命令下載Node,如下圖:

wget https://nodejs.org/dist/v10.15.2/node-v10.15.2-linux-x64.tar.xz

 

 

 

3)解壓Node包

tar xvf node-v10.15.2-linux-x64.tar.xz

 

 

 

4)設置軟連接

解壓文件的 bin 目錄底下包含了 node、npm 等命令,我們可以使用 ln 命令來設置軟連接:

 ln -s bin/npm /usr/local/bin/

 ln -s bin/node /usr/local/bin/

 

在/etc/profile中配置好path環境變量

vi ~/.bash_profile

export NODE_HOME=/opt/nodejs/node-v10.15.2-linux-x64

export PATH=$PATH:$NODE_HOME/bin

 

保存退出,使文件生效

source ~/.bash_profile

 

查看node安裝版本,執行 node -v 驗證安裝如下圖:

 

 

2.3.2 grunt安裝

安裝grunt(運行在Node.js上面的任務管理器(task runner)),為了獲得Grunt的更多產品特性,需要全局安裝Grunt's 命令行接口(CLI),使用npm進行安裝,如下:

npm install -g grunt-cli

 

 

 

查看grunt版本

 

 

輸出grunt版本信息,表示安裝成功。

2.3.3 head安裝

1) 執行命令安裝git

git yum install git -y

 

 

 

2) 切換到/opt目錄下,執行下面的克隆命令

git clone git://github.com/mobz/elasticsearch-head.git

 

 

 

3) 進入到elasticsearch-head目錄

cd elasticsearch-head

 

4) 運行

在運行之前我們需要修改下elasticsearch.yml,因為ES默認不開啟跨域訪問,需要添加以下配置:

#開啟cors跨域訪問支持,默認為false 
http.cors.enabled: true
#跨域訪問允許的域名地址,(允許所有域名)以上使用正則
http.cors.allow-origin: "*"

 

然后開始執行運行命令:

npm run start

 

 

 

5) 訪問head

瀏覽器輸入ip:port:9100,如下圖

 

 

看到這個界面說明我們的head插件成功安裝並且成功連接Elasticsearch。

 

 

IK分詞器安裝

1、環境准備

Elasticsearch 要使用 ik,就要先構建 ik 的 jar包,這里要用到 maven 包管理工具,而 maven 需要java 環境,而 Elasticsearch 內置了jdk, 所以可以將JAVA_HOME設置為Elasticsearch 內置的jdk

1)設置JAVA_HOME

vim /etc/profile
# 在profile文件末尾添加
#java environment
export JAVA_HOME=/opt/elasticsearch-7.4.0/jdk
export PATH=$PATH:${JAVA_HOME}/bin
​
# 保存退出后,重新加載profile
source /etc/profile

 

 

2)下載maven安裝包

wget http://mirror.cc.columbia.edu/pub/software/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz  

 

3)解壓maven安裝包

tar xzf apache-maven-3.1.1-bin.tar.gz 

 

4)設置軟連接

ln -s apache-maven-3.1.1 maven 

 

5)設置path

打開文件

vim  /etc/profile.d/maven.sh

 

將下面的內容復制到文件,保存

export MAVEN_HOME=/opt/maven  
export PATH=${MAVEN_HOME}/bin:${PATH} 

 

設置好Maven的路徑之后,需要運行下面的命令使其生效

source /etc/profile.d/maven.sh

 

6)驗證maven是否安裝成功

mvn -v

 

2、安裝IK分詞器

1)下載IK

wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip

 

執行如下圖:

2)解壓IK

由於這里是zip包不是gz包,所以我們需要使用unzip命令進行解壓,如果本機環境沒有安裝unzip,請執行:

yum install zip 
yum install unzip

 

解壓IK

unzip v7.4.0.zip

 

3)編譯jar包

# 切換到 elasticsearch-analysis-ik-7.4.0目錄
cd elasticsearch-analysis-ik-7.4.0/
#打包
mvn package

 

 

4) jar包移動

package執行完畢后會在當前目錄下生成target/releases目錄,將其中的elasticsearch-analysis-ik-7.4.0.zip。拷貝到elasticsearch目錄下的新建的目錄plugins/analysis-ik,並解壓

#切換目錄
cd /opt/elasticsearch-7.4.0/plugins/
#新建目錄
mkdir analysis-ik
cd analysis-ik
#執行拷貝
cp -R /opt/elasticsearch-analysis-ik-7.4.0/target/releases/elasticsearch-analysis-ik-7.4.0.zip      /opt/elasticsearch-7.4.0/plugins/analysis-ik
#執行解壓
unzip  /opt/elasticsearch-7.4.0/plugins/analysis-ik/elasticsearch-analysis-ik-7.4.0.zip

 

5)拷貝辭典

將elasticsearch-analysis-ik-7.4.0目錄下的config目錄中的所有文件 拷貝到elasticsearch的config目錄

cp -R /opt/elasticsearch-analysis-ik-7.4.0/config/*   /opt/elasticsearch-7.4.0/config

 

記得一定要重啟Elasticsearch!!!

3、使用IK分詞器

IK分詞器有兩種分詞模式:ik_max_word和ik_smart模式。

1、ik_max_word

會將文本做最細粒度的拆分,比如會將“乒乓球明年總冠軍”拆分為“乒乓球、乒乓、球、明年、總冠軍、冠軍。

#方式一ik_max_word
GET /_analyze
{
  "analyzer": "ik_max_word",
  "text": "乒乓球明年總冠軍"
}

 

ik_max_word分詞器執行如下:

{
  "tokens" : [
    {
      "token" : "乒乓球",
      "start_offset" : 0,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "乒乓",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "球",
      "start_offset" : 2,
      "end_offset" : 3,
      "type" : "CN_CHAR",
      "position" : 2
    },
    {
      "token" : "明年",
      "start_offset" : 3,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 3
    },
    {
      "token" : "總冠軍",
      "start_offset" : 5,
      "end_offset" : 8,
      "type" : "CN_WORD",
      "position" : 4
    },
    {
      "token" : "冠軍",
      "start_offset" : 6,
      "end_offset" : 8,
      "type" : "CN_WORD",
      "position" : 5
    }
  ]
}

 


2、ik_smart 會做最粗粒度的拆分,比如會將“乒乓球明年總冠軍”拆分為乒乓球、明年、總冠軍。

#方式二ik_smart
GET /_analyze
{
  "analyzer": "ik_smart",
  "text": "乒乓球明年總冠軍"
}
ik_smart分詞器執行如下:

{
  "tokens" : [
    {
      "token" : "乒乓球",
      "start_offset" : 0,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "明年",
      "start_offset" : 3,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "總冠軍",
      "start_offset" : 5,
      "end_offset" : 8,
      "type" : "CN_WORD",
      "position" : 2
    }
  ]
}

 

由此可見 使用ik_smart可以將文本"text": "乒乓球明年總冠軍"分成了【乒乓球】【明年】【總冠軍】

這樣看的話,這樣的分詞效果達到了我們的要求。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM