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官网

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