安装solr + IK分词器

技术概述,描述这个技术是做什么

在我们开发一个搜索功能的时候,如果采用SQL 语句来查找 数据,需要使用 like % + 字符 + % 的情况下,会导致索引失效
会导致索引失效,所以推荐使用搜索引擎来实现相关的功能。
Solr作为一个外国开发的搜索引擎,自带的分词器无法对中文进行分词,所以需要安装IK分词器进行配合使用

实现过程

1.docker 拉取solr镜像

docker pull solr

2.创建并运行的solr容器

docker run --name solr -d -p 8983:8983 solr

3.防火墙放行相关端口

firewall-cmd --zone=public  --add-port=8983/tcp --permanent
firewall-cmd --reload

4.创建核心
在浏览器输入主机号:端口号会出现一下页面

会出现

进入solr容器

复制配置文件到core文件夹

出现这个说明成功

5.安装IK分词器

到下方地址下载IK分词器的资源

https://github.com/magese/ik-analyzer-solr

用root身份进入容器


docker exec -it --user=root solr /bin/bash

在容器内安装vim


apt-get  update
apt-get install vim

进入下面文件夹
cd /opt/solr-x.x.0/server/solr-webapp/webapp/WEB-INF
创建文件夹(classes)
mkdir classes
退出容器:

将jar包放入Solr服务Tomcat的webapp/WEB-INF/lib/目录下
将resources目录下的5个配置文件放入solr服务Tomcat的webapp/WEB-INF/classes/目录下

  • IKAnalyzer.cfg.xml
  • ext.dic
  • stopword.dic
  • ik.conf
  • dynamicdic.txt
docker cp IKAnalyzer.cfg.xml solr:/opt/solr-x.x.0/server/solr-webapp/webapp/WEB-INF/classes/
docker cp ext.dic solr:/opt/solr-x.x.0/server/solr-webapp/webapp/WEB-INF/classes/
docker cp stopword.dic solr:/opt/solr-x.x.0/server/solr-webapp/webapp/WEB-INF/classes/
docker cp ik.conf solr:/opt/solr-x.x.0/server/solr-webapp/webapp/WEB-INF/classes/
docker cp dynamicdic.txt solr:/opt/solr-x.x.0/server/solr-webapp/webapp/WEB-INF/classes/

修改managed-schema

docker exec -it  solr /bin/bash
cd /var/solr/data/核心/conf
vim managed-schema 

添加ik分词器,示例如下;

<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
  <analyzer type="index">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

ok,配置IK 完成,退出容器:exit
重启solr 的容器:
docker restart solr

在浏览器输入主机号:8983

posted @ 2020-06-14 20:28  root11  阅读(311)  评论(2编辑  收藏  举报