前言。。。

翻遍百度、谷歌、bing也没找到docker下给elasticsearch安装smartcn的资料,全是IK和拼音的,只好拿出我这只会几个简单命令的本事参考、观摩、尝试...参考、观摩、尝试...参考、观摩、尝试......最终熬出结果┭┮﹏┭┮

编写Dockerfile

以下是我编写的Dockerfile文件内容,注释较为详细不再赘述

# Docker image of elasticsearch with smartcn tokenizer
# VERSION 2.4.6
# Author: SenWang#基础镜像使用elasticsearch:2.4.6
FROM elasticsearch:2.4.6#作者
MAINTAINER SenWang <wangsen961225@163.com>#es插件目录
ENV ES_PLUGINS_PATH /usr/share/elasticsearch/plugins#定义存放smartcn分词器文件的目录
ENV SMARTCN_SRC_COMPILE_PATH /opt/smartcn_build#创建存放smartcn分词器文件的目录
RUN mkdir $SMARTCN_SRC_COMPILE_PATH && \#进入编译smartcn分词器文件的目录
cd $SMARTCN_SRC_COMPILE_PATH && \#下载smartcn包
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/plugin/analysis-smartcn/2.4.6/analysis-smartcn-2.4.6.zip && \#解压源码包
unzip analysis-smartcn-2.4.6 -d  analysis-smartcn&& \#构建成功后,将文件移动到插件目录
mv analysis-smartcn $ES_PLUGINS_PATH/

构建镜像

  1. 在Dockerfile文件所在目录下使用如下命令(注意:最后有一个点 . )

    docker build -t elasticsearch-with-smartcn:2.4.6 .
  2. 构建成功后,执行命令docker history elasticsearch-with-smartcn:2.4.6查看构建信息,如下:
    Show the history of an image
    [root@localhost elasticsearch-with-smartcn]# docker history elasticsearch-with-smartcn:2.4.6
    IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
    acae22f4dee2        40 minutes ago      /bin/sh -c mkdir $SMARTCN_SRC_COMPILE_PATH &…   7.22MB
    6eeaec073d30        41 minutes ago      /bin/sh -c #(nop)  ENV SMARTCN_SRC_COMPILE_P…   0B
    21cb0c7891cc        2 hours ago         /bin/sh -c #(nop)  ENV ES_PLUGINS_PATH=/usr/…   0B
    d2e1b6c22ae4        2 hours ago         /bin/sh -c #(nop)  MAINTAINER BolingCavalry …   0B
    5e9d896dc62c        6 months ago        /bin/sh -c #(nop)  CMD ["elasticsearch"]        0B
    <missing>           6 months ago        /bin/sh -c #(nop)  ENTRYPOINT ["/docker-entr…   0B
    <missing>           6 months ago        /bin/sh -c #(nop)  EXPOSE 9200/tcp 9300/tcp     0B
    <missing>           6 months ago        /bin/sh -c #(nop) COPY file:251082110c6dbdf8…   741B
    <missing>           6 months ago        /bin/sh -c #(nop)  VOLUME [/usr/share/elasti…   0B
    <missing>           6 months ago        /bin/sh -c #(nop) COPY dir:5ec5fadebeaa388fd…   491B
    <missing>           6 months ago        /bin/sh -c set -ex  && for path in   ./data …   0B
    <missing>           6 months ago        /bin/sh -c #(nop) WORKDIR /usr/share/elastic…   0B
    <missing>           6 months ago        /bin/sh -c #(nop)  ENV PATH=/usr/share/elast…   0B
    <missing>           6 months ago        /bin/sh -c set -x   && dpkg-divert --rename …   32.2MB
    <missing>           6 months ago        /bin/sh -c #(nop)  ENV ELASTICSEARCH_DEB_VER…   0B
    <missing>           6 months ago        /bin/sh -c #(nop)  ENV ELASTICSEARCH_VERSION…   0B
    <missing>           6 months ago        /bin/sh -c set -x  && apt-get update && apt-…   2.46MB
    <missing>           6 months ago        /bin/sh -c set -ex;  key='46095ACC8548582C1A…   1.22kB
    <missing>           6 months ago        /bin/sh -c set -x  && wget -O /usr/local/bin…   1.29MB
    <missing>           6 months ago        /bin/sh -c #(nop)  ENV GOSU_VERSION=1.10        0B
    <missing>           6 months ago        /bin/sh -c /var/lib/dpkg/info/ca-certificate…   355kB
    <missing>           6 months ago        /bin/sh -c set -ex;   if [ ! -d /usr/share/m…   309MB
    <missing>           6 months ago        /bin/sh -c #(nop)  ENV CA_CERTIFICATES_JAVA_…   0B
    <missing>           6 months ago        /bin/sh -c #(nop)  ENV JAVA_DEBIAN_VERSION=8…   0B
    <missing>           6 months ago        /bin/sh -c #(nop)  ENV JAVA_VERSION=8u181       0B
    <missing>           6 months ago        /bin/sh -c #(nop)  ENV JAVA_HOME=/docker-jav…   0B
    <missing>           6 months ago        /bin/sh -c ln -svT "/usr/lib/jvm/java-8-open…   33B
    <missing>           6 months ago        /bin/sh -c {   echo '#!/bin/sh';   echo 'set…   87B
    <missing>           6 months ago        /bin/sh -c #(nop)  ENV LANG=C.UTF-8             0B
    <missing>           6 months ago        /bin/sh -c apt-get update && apt-get install…   2.05MB
    <missing>           6 months ago        /bin/sh -c set -ex;  if ! command -v gpg > /…   7.8MB
    <missing>           6 months ago        /bin/sh -c apt-get update && apt-get install…   23.2MB
    <missing>           6 months ago        /bin/sh -c #(nop)  CMD ["bash"]                 0B
    <missing>           6 months ago        /bin/sh -c #(nop) ADD file:58d5c21fcabcf1eec…   101MB
    

检测是否安装成功

  1. 使用docker-compose启动镜像,编辑YAML文件如下:

    version: '2'
    services:elasticsearch:image: elasticsearch-with-smartcn:2.4.6volumes:- ~/volumes/jhipster/HDBack/elasticsearch/:/usr/share/elasticsearch/data/ports:- 9200:9200- 9300:9300
  2. 在该文件所在文件夹下使用如下命令启动:
    docker-compose -f elasticsearch.yml(你的YAML文件命名) up
  3. 启动结果如下:

验证分词器效果

假设docker所在电脑IP是192.168.134.130,在谷歌浏览器head插件上连接elasticsearch并执行查询

最后可将此镜像上传仓库以便重复使用?

docker自定义elasticsearch镜像——集成中文分词器smartcn相关推荐

  1. 如何在Elasticsearch中安装中文分词器(IK+pinyin)

    如何在Elasticsearch中安装中文分词器(IK+pinyin) 如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当 ...

  2. solr mysql 分词_solr 7+tomcat 8 + mysql实现solr 7基本使用(安装、集成中文分词器、定时同步数据库数据以及项目集成)...

    基本说明 Solr是一个开源项目,基于Lucene的搜索服务器,一般用于高级的搜索功能: solr还支持各种插件(如中文分词器等),便于做多样化功能的集成: 提供页面操作,查看日志和配置信息,功能全面 ...

  3. Elasticsearch配置ik中文分词器自定义词库

    1.IK配置文件 在config目录下: IKAnalyzer.cfg.xml:配置自定义词库 main.dic:分词器自带的词库,索引会按照里面的词创建 quantifier.dic:存放计量单位词 ...

  4. ES集成中文分词器: IK 3.0

    1.集成分词器 IKAnalyzer是一个开源的,基于Java语言开发的轻量级中文分词器工具包,独立于Lucene项目, 同事提供了对Lucene的默认优化实现. IK分词器3.0有下面几个特性: 采 ...

  5. ElasticSearch 中的中文分词器该怎么玩?_03

    内置分词器 ElasticSearch 核心功能就是数据检索,首先通过索引将文档写入 es.查询分析则主要分为两个步骤: 词条化:分词器将输入的文本转为一个一个的词条流. 过滤:比如停用词过滤器会从词 ...

  6. ElasticSearch 中的中文分词器以及索引基本操作详解

    文章目录 1.ElasticSearch 分词器介绍 1.1 内置分词器 1.2 中文分词器 1.2.1 安装 1.2.2 测试 1.2.3 自定义扩展词库 1.2.3.1 本地自定义 1.2.3.2 ...

  7. Elasticsearch:hanlp 中文分词器

    HanLP 中文分词器是一个开源的分词器,是专为Elasticsearch而设计的.它是基于HanLP,并提供了HanLP中大部分的分词方式.它的源码位于: https://github.com/Ke ...

  8. ElasticSearch的IK中文分词器

    目录 概述 一.安装下载 二.设置es使用ik分词器 三.效果对比 四.ik分词器自定义字典 五.ik分词器自定义字典的配置 概述 本文主要介绍了 ik 分词器在es中的一些配置以及原理,包括 下载安 ...

  9. Elasticsearch 7.X 中文分词器 ik 使用,及词库的动态扩展

    一.ik中文分词器 上篇文章我们学习了ES集群分片和水平扩容,前面再使用的时候应该就会发现,在做match 匹配时,默认会进行分词,但当查询内容是中文时,分词效果是一个字被认定了一个词,这显然不符合我 ...

最新文章

  1. Exchange bin先常用工具
  2. JVM内存管理------JAVA语言的内存管理概述
  3. 【FFMPEG源码终极解析】 avformat_open_input (一)
  4. C语言中printf(built: %s %s,__TIME__,__DATE__);方便调试
  5. php布尔类型转为字符串,php将布尔值类型转为了字符串类型,比如传入isAnalog:true,处理后isAnalog:true...
  6. editor.md国产markdown编辑器使用实例
  7. 图像处理【代码合集】
  8. 脚本录制两种模式 HTML-based script和URL-based script模式
  9. java合并两个数组_「JAVA」两个数组的交集—力扣每日一题(一)
  10. python串口数据分包_python TCP Socket的粘包和分包的处理详解
  11. jsp 九大内置对象详解以及示例
  12. 微型计算机中的rom跟ram关系,STC单片机内部扩展RAM的应用
  13. 计算机无法识别出cd驱动器,迅捷(FAST)免驱无线网卡插到电脑上无法识别CD驱动器怎么解决?【图解】...
  14. mysql on.000002_mysql | 同乐学堂
  15. arctanx麦克劳林公式推导过程_三角函数的求导过程
  16. 山东 计算机专业,山东省内计算机专业大学排名?
  17. Codeforces 115B Lawnmower
  18. 北京理工大学ACM冬季培训课程之C++的应用
  19. restful规范对应的controller层注解,testng测试
  20. android 开机向导加载过程,开机向导启动流程分析

热门文章

  1. 两位数的加减乘除计算器
  2. javascript小技巧
  3. 为什么选一款适合自己的蓝牙耳机这么难?高性价比低延迟蓝牙耳机推荐
  4. excel中DATE(year,month,day)函数——oracle自定义函数
  5. python学习13:分解质因数
  6. Java 8 Update 201 (8u201)
  7. 视频会议软件商Zoom为何可以出人头地?
  8. java计算机毕业设计高校体育场馆管理源码+mysql数据库+系统+lw文档+部署
  9. ZOJ--1005:Jugs(dfs)
  10. 特警把那盅犯形容的汝么厉害