-
拉取solr镜像
docker pull solr:7.4.0
-
启动 Solr 容器,即可访问 http://ip:8983/ ;
docker run --name taotao-solr -d -p 8983:8983 -t solr:7.4.0
-
新建 SolrCore,名称为 collection1;
docker exec -it --user=solr taotao-solr bin/solr create_core -c collection1
-
为了方便后续修改配置,将容器 solr 文件拷贝本地
/usr/local/solr/
路径下;docker cp taotao-solr:/opt/solr/ /usr/local/ # 容器拷贝宿主机
-
设置中文分词 smartcn;
-
进入容器
docker exec -it taotao-solr /bin/bash
; -
定位Solr7自带的中文分词器 smartcn 的jar包位置
/opt/solr/contrib/analysis-extras/lucene-libs
; -
进入创建的 solrcore: collection1 配置目录
/opt/solr/server/solr/collection1/conf
,修改solrconfig.xml
添加 smartcn 包的lib
标签;
-
<lib dir="${solr.install.dir:../../..}/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../..}/dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="${solr.install.dir:../../..}/contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../..}/dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="${solr.install.dir:../../..}/contrib/langid/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../..}/dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="${solr.install.dir:../../..}/contrib/velocity/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
<lib dir="${solr.install.dir:../../..}/contrib/analysis-extras/lucene-libs" regex="lucene-analyzers-smartcn-7.4.0.jar" />
在 managed-schema
中添加中文分词的 FieldType ;
<fieldtype name="cn_text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
</fieldtype>
-
上传配置,重启solr服务。
docker cp /usr/local/solr/server/solr/collection1/conf/solrconfig.xml taotao-solr:/opt/solr/server/solr/collection1/conf/solrconfig.xml docker cp /usr/local/solr/server/solr/collection1/conf/managed-schema taotao-solr:/opt/solr/server/solr/collection1/conf/managed-schema docker restart taotao-solr