前言
- 在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的操作,不用自己写插件了,它为你做了更多的底层优化以及连接池的建立,比较不错,推荐大家使用…