elasticsearch7.1.0 ik中文分詞快速搭建本地測試環境(docker版本)

前言

  • 在es7.1.0中最大的變化莫過於type概念被廢除了,也就意味着es index(不做特殊說明,這裏的索引均是指elasticsearch中的索引概念)不再被理解成數據庫了,更加貼切的應該是把索引比作類似於的,每個索引(表)都有一個映射關係mapping(數據表的設計結構),很自然地聯想到索引mapping主要是對字段作的一系列定義(包括存儲類型,索引方式),詳情看這
  • 本篇的搭建方式是基於docker容器的,非常快捷方便,這裏是做參考使用

| 下面是本人在本地測試環境像乞丐

docker name version
elasticsearch 容器 7.1.0
kibana 容器 7.1.0
elasticsearch-analysis-ik-7.1.0.zip 安裝包 7.1.0
環境變量
本地ip 192.168.1.109

安裝並下載解壓ik中文分詞包

	> git pull https://github.com/medcl/elasticsearch-analysis-ik.git
	> cd elasticsearch-analysis-ik
	> mvn clean compile package

如果覺得麻煩,可以參考我目前打包好的zip 下載地址,解壓到指定位置可見 構建dockerfile

elasticsearch配置修改,主要以單節點做測試使用

elasticsearch.yml

	cluster.name: "docker-cluster"
	http.cors.enabled: true
	http.cors.allow-origin: "*"
	network.host: 0.0.0.0

構建dockerfile,方便部署docker自定義鏡像

    From elasticsearch:7.1.0
    ENV WORK_PATH /usr/share/elasticsearch
	ENV TZ=Asia/Shanghai
	RUN ln -snf /usr/share/zoneinfo/$TZ  /etc/localtime && echo $TZ > /etc/timezone
    ADD ./elasticsearch.yml $WORK_PATH/config
	RUN mkdir -p $WORK_PATH/plugins/ik
    ADD ./target/releases/elasticsearch-analysis-ik-7.1.0.zip $WORK_PATH/plugins/ik
	RUN cd $WORK_PATH/plugins/ik && unzipelasticsearch-analysis-ik-7.1.0.zip && rm -rf elasticsearch-analysis-ik-7.1.0.zip

以上表示創建一個容器,保證時間與中國上海時間同步,並把elasticsearch-ik包以及
相關到elasticsearch配置文件覆蓋內部文件

完成構建任務,並生產容器

  > docker build -t elasticsearchik:7.1.0 .(點表示當前目錄)
   # D:/esdata/esdata 爲本地到數據卷,用來掛載es數據到地方
  > docker run -d --name est2 -p 9200:9200 -p 9300:9300 -v D:/esdata/esdata:/usr/share/elasticsearch/data --network kml -e"discovery.type=single-node" elasticsearchik:7.1.0
    # 內置到kibana7.1.0默認會訪問 elasticsearch:9200 因此在新建容器的
    # 時候,需要給容器添加hosts域名映射,以保持kibana與elasticsearch的通信
  > dockerrun -d --name kibana --network kml  --add-host elasticsearch:192.168.1.109 -e ELASTICSEARCH_URL=http://192.168.1.109:9200 -p 5601:5601 kibana:7.1.0
刪除命令

	# 其他刪除命令
  >  docker rm est2 
  >  docker rmi elasticsearchik:7.1.0

在這裏插入圖片描述

7.1.0測試結果

自v5.0.0起 分析器名爲移除移除ik的分析器和標記生成器,請使用分別ik_smartik_max_word

ik_smart 類型

在這裏插入圖片描述

ik_max_word 類型

在這裏插入圖片描述
對比兩個類型,ik_smart所切的詞的粒度比較粗,而ik_max_word 粒度非常細

ik自定義自己的一些規則比如停用詞等等到設置,在哪裏設置?

兩種方式

  1. 本地方式
  2. 遠程方式
    關鍵配置文件 ⇒ 在新建的est2容器內部,可以看到IKAnalyzer.cfg.xml 自己編輯相關的文件,詳情見github
    在這裏插入圖片描述

接下來可以根據es官方提供到資料自行做好開發工作,同時推薦一款比較良心的插件bboss,其主要是針對elastisearch搜索引擎提供一種orm的操作,不用自己寫插件了,它爲你做了更多的底層優化以及連接池的建立,比較不錯,推薦大家使用…


參考文章

docker容器添加自定義hosts
ik github官網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章