Docker 安装 Solr7 ikanalyzer
原理
ikanalyzer 是 solr 的中文分词工具,之前并没有接触过solr,属于赶鸭子上架要安装 ikanalyzer , 踩了很多坑,所以在你看这篇文章之前首先需要了解中文分词的基本原理; solr的集合=mysql中的数据库表,在我们安装分词的同时也需要配置数据库,这样做的话会少一些报错!
所需资料:
扩展 我放到了网盘里:
链接:https://pan.baidu.com/s/1GOE4cRDWkcqgtruyWzQIvw
提取码:solr
正餐
拉取镜像
docker pull solr:7.4.0
运行容器
我的windos系统 8983是系统占用端口 所以这里使用81端口
docker run -itd -p 81:8983 --name 5yoho_solr solr:7.4.0
安装vim
超级管理员身份进入容器
docker exec -it --user=root 5yoho_solr /bin/bash
安装vim工具
apt-get update && apt-get install vim
安装完成后 退出
exit
中文分词 ik-analyzer扩展导入
网盘下载的内容 放入目录 我的是 E:\vagrant\docker\solr
进入到这个目录
扩展文件导入至容器目录
docker cp ./ik-analyzer-8.3.0.jar 5yoho_solr:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib
docker cp ./ik-analyzer-solr7-7.x.jar 5yoho_solr:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib
docker cp ./solr-dataimporthandler-8.4.0.jar 5yoho_solr:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib
docker cp ./solr-dataimporthandler-extras-8.4.0.jar 5yoho_solr:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib
mysql数据连接驱动导入
docker cp ./mysql-connector-java-5.1.4-bin.jar 5yoho_solr:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib
创建一个集合
portal_category 与我的数据库表名是相同的
docker exec -it --user=solr 5yoho_solr bin/solr create_core -c portal_category
数据库配置文件
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource name="source1" type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/laravel_test"
user="root"
password="root"+:
batchSize="-1" />
<document>
<entity name="laravel_test" dataSource="source1"
query="SELECT id, userId, name, addon, FROM portal_category">
<field column="id" name="id" />
<field column="name" name="name" />
<field column="description" name="description" />
<field column="seo_title" name="seo_title" />
</entity>
</document>
</dataConfig>
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
导入至portal_category集合conf文件
docker cp ./data-config.xml 5yoho_solr:/opt/solr/server/solr/portal_category/conf
配置IK分词器
// 定位到
docker exec -it --user=root 5yoho_solr /bin/bash
cd /opt/solr/server/solr/portal_category/conf
vim managed-schema
shift+g 定位到最后一行
<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name='name' type="text_ik" indexed="true" stored="true"/>
<field name='description' type="text_ik" indexed="true" stored="true"/>
<field name='seo_title' type="text_ik" indexed="true" stored="true"/>
如下
配置 solrconfig.xml 配置导入把当初配置好的 data-config.xml 导入到 solr 中
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
重启
docker restart 5yoho_solr
鸣谢-十三月http://auan.cn/internet/2274.html