【全】在 Docker 的Solr容器中安装 IK 中文分词器

【原创文章,转载请标明出处】
这些坑我已经帮你踩过了:

  1. 现在大家能够在网上(需要禾斗学上网)下载的IK分词器版本已经非常老了,而Solr更新还是非常快的,所以会出现版本不兼容的问题,不然即使成功装上了,也无法进行分词,Solr会报异常:java.lang.AbstractMethodError
FileSummary + LabelsUploadedSize
[IK Analyzer 2012FF_hf1_source.rar]IK Analyer 2012-FF Hotfix 1 源码 Type-Archive OpSys-All Ver 2012 FF hf1Dec 21, 20121.02MB
[IK Analyzer 2012_u6_source.rar]IK Analyer 2012 upgrade 6 源码 Type-Source OpSys-All version 2012 u6Dec 21, 20121.02MB
[IKAnalyzer2012_u6.zip]IK Analyer 2012 完整分发包 upgrade 6 Type-Archive OpSys-All version 2012 u6 For Lucene 3.x / Solr3.xOct 29, 20122.04MB
[IK Analyzer 2012FF_hf1.zip]IK Analyer 2012-FF hotfix 1 完整分发包 Type-Archive OpSys-All version 2012FF hotfix1 For lucene4.0 / solr 4.0Oct 26, 20122.05MB
[IK Analyzer 2012 FF_SRC.rar]IK Analyer 2012-FF 源码 Type-Source OpSys-All Ver 2012 FFOct 23, 20121.02MB
  1. 所以现在给大家提供比较新的两个版本:

    • Solr6(包含)以下食用更佳:https://github.com/cj96248/ik-analyzer-solr6

    • (推荐) Solr7&8食用更佳:https://github.com/magese/ik-analyzer-solr

      上面两个都需要将源码打成JAR包,操作见下篇文章

  2. 当然solr5以前的可以装上老版本,我也都因为勤(cai)快(keng)下好了

    链接:https://pan.baidu.com/s/1WAtY5kjI75Kg-e6OAH69cw
    提取码:g5ib

安装Solr

  1. 拉取Solr镜像

    docker pull solr
    
  2. 创建Solr容器并运行

    –name mySolr 给自己的容器取名mySolr

    -p 8983:8983 8983端口号映射到宿主机的8983端口上

    -d solr 后台运行容器

    docker run --name mySolr -p 8983:8983 -d solr
    
  3. 直接访问Solr服务

    浏览器直接访问

    http://宿主服务器ip地址:8983
    

    电脑虚拟机无法访问检查防火墙,阿里云等云服务器需要进行安全组配置开放端口,这里就不多赘述了。

    页面上的Versions就是Solr的版本号

    访问Solr

安装核心选择器

  1. 创建核心选择器

    exec -it :交互式执行容器

    -c 内核的名称(必须)

    docker exec -it mySolr bin/solr create_core -c myIKCore
    

安装配置IK分词器

  1. 传输IK分词器

    • 先通过FTP传输软件传入宿主机的某一文件夹内

    • 没有按照开篇说的步骤将源码打成JAR包的我也准备好了(最好还是学下怎么打JAR包吧)

      链接:https://pan.baidu.com/s/1HRkBrGSQ3d4jl-XL07fSKw
      提取码:fviy

    • 将JAR包复制到Solr容器的分词包文件夹中

      docker cp ik-analyzer.jar mySolr:/opt/solr-8.3.1/contrib/analysis-extras/lucene-libs
      
  2. 查看Solr容器在宿主机中数据卷的位置

    docker inspect mySolr
    

    找到Mounts

    Destination 容器里的路径

    Source 对应宿主机里的路径

    Mounts

  3. 将IK分词器配置到Solr的核心配置文件中

    S o u r c e 就 是 上 一 步 骤 的 S o u r c e 值 , 不 是 真 写 {Source} 就是上一步骤的Source值,不是真写 SourceSource{Source}哈

    cd ${Source}/data/myIKCore/conf/
    vim solrconfig.xml
    

    添加如下内容

    dir 容器存放自带分词JAR包的目录

    regex JAR包名

    <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs/" regex="ik-analyzer.jar" />
    

    声明中文分词器

    vim managed-schema
    

    找到指定位置添加配置

    <!-- IKAnalyzer -->
    <fieldType name ="text_ik" class ="solr.TextField">
        <!-- 索引时候的分词器-->
        <analyzer type ="index" isMaxWordLength ="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
        <!--查询时候的分词器-->
        <analyzer type ="query" isMaxWordLength ="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    </fieldType>
    

真香时刻

  1. 重启Solr容器

    docker restart mySolr
    
  2. 浏览器访问Solr

    • 选择刚刚创建的核心选择器

      选择核心选择器

    • 进行分词分析

      进行分词分析
      End……
      欢迎来访个人博客:www.geekshare.site

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值