前言
- 在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_smart和ik_max_word
ik_smart 類型
ik_max_word 類型
對比兩個類型,ik_smart所切的詞的粒度比較粗,而ik_max_word 粒度非常細
ik自定義自己的一些規則比如停用詞等等到設置,在哪裏設置?
兩種方式
- 本地方式
- 遠程方式
關鍵配置文件 ⇒ 在新建的est2容器內部,可以看到IKAnalyzer.cfg.xml 自己編輯相關的文件,詳情見github
接下來可以根據es官方提供到資料自行做好開發工作,同時推薦一款比較良心的插件bboss,其主要是針對elastisearch搜索引擎提供一種orm的操作,不用自己寫插件了,它爲你做了更多的底層優化以及連接池的建立,比較不錯,推薦大家使用…