Solr安装以及中文分词器IK-Analyzer的添加
一.环境
Windows
jdk8
tomcat8.5
Solr7.3
下载地址:http://www.apache.org/dyn/closer.lua/lucene/solr/7.3.1
IK-Analyzer-Solr7(中文分词器 )
下载地址:http://search.maven.org/#search%7Cga%7C1%7Ccom.github.magese
源码地址:https://github.com/magese/ik-analyzer-solr7
二.准备
下载Solr
解压:
下载 IK-Analyzer
三.Solr_7_3 与Tomcat整合
步骤
1. 将solr-7.3.1\server\solr-webapp下的webapp复制到Tomcat\webapps下,并改名solr;
2. 将solr-7.3.1\server\lib下的ext下的所有jar包复制到Tomcat\webapps\solr\WEB-INF\lib下,以及solr-7.3.1\server\lib下以metrics开头的jar、gmetric4j-1.0.7.jar复制到Tomcat\webapps\solr\WEB-INF\lib下;
3. 在Tomcat\webapps\solr\WEB-INF下创建classes文件夹,并把solr-7.3.1\server\resources下的log4.perportiy复制到 classes文件下;
4. 修改修改Tomcat\bin下的catalina.bat,增加solr.log.dir系统变量,指定solr日志记录存放地址。
rem My Solr
if not "%JSSE_OPTS%" == "" goto gotJsseOpts
set JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
:gotJsseOpts
set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%" --增加下一行
set "JAVA_OPTS=%JAVA_OPTS% -Dsolr.log.dir=E:\SolrHome\logs"
5. 在任意地方创建文件夹SolrHome,把solr-7.3.1\server下solr下的所有文件复制到这个SolrHome下,在这里,我创建在Solr-7.3.1的同级目录下了,并且修改配置文件Tomcat\webapps\solr\WEB-INF\web.xml,将下面配置的注释放开,黑体部分更改为你的SolrHome地址。
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>E:\SolrHome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
并注释
<!-- Get rid of error message
<security-constraint>
<web-resource-collection>
<web-resource-name>Disable TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Enable everything but TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method-omission>TRACE</http-method-omission>
</web-resource-collection>
</security-constraint>
-->
6. 配合solr日志记录存放地址,在SolrHome下新建logs文件夹,此处与配置4位置配置路径一致;
7. 拷贝solr-7.3.1下contrib和dist文件夹至SolrHome目录下。
8. 在SolrHome目录下新建new_core文件夹;并拷贝solr-7.3.1\server\solr\configsets_default\目录下conf文件夹至SolrHome\new_core下。
9. 修改solr-home\new_core\conf\solrconfig.xml文件,如下
<!--
<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/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:../}/dist/" regex="ojdbc\d.*\.jar" />
<lib dir="${solr.install.dir:../}/dist/" regex="solr-dataimporthandler\d.*\.jar" />
10. 启动Tomcat,访问http://localhost:8080/solr/index.html
看到上面这个页面就代表成功
四.Solr_7_3在Tomcat下使用中文分词IK-Analyze
步骤
1.下载jar包
2.将下载好的jar包放入Tomcat 8.5/webapps/solr/WEB-INF/lib目录中
3.打开SolrHome/new_core/conf目录中的managed-schema文件
4.在managed-schema里添加下面代码
<!-- 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>
5.重启Tomcat
刷新页面,可以看见text_ik代表成功
6.分词测试
五.Solr_7_3 与自带jetty整合
1)启动solr服务
1.进入solr-7.3.1/bin目录:
2.Shift+右键 在此处打开命令窗口
3.输入命令:solr start -p 9090
出现上述字样表示服务已经启动成功
2)访问Solr管理页面
使用 http://localhost:9090/solr/index.html 访问管理页面
3)添加solr core
1.先进入solr-7.3.0/example/example-DIH/solr/solr目录中
2.将该目录中的conf文件夹与core.properties文件copy
3.接下来我们进入solr-7.3.1/server/solr目录,在此目录创建一个文件夹mycore1
4.然后我们将上面的conf文件夹和core.properties文件copy到此文件夹中
5.重启一下solr服务
切换先前cmd,输入命令 solr restart -p 9090
6.打开 http://localhost:9090/solr/index.html
可以发现solr core已经添加成功了
六.Solr_7_3在jetty下使用中文分词IK-Analyze
步骤:
1.下载jar包
http://search.maven.org/#search%7Cga%7C1%7Ccom.github.magese
2.将下载好的jar包放入solr-7.3.1/server/solr-webapp/webapp/WEB-INF/lib目录中
3.打开solr-7.3.1/server/solr/mycore1/conf目录中的managed-schema文件
添加下面代码:
<!-- 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>
4.重启solr服务
solr restart -p 9090
看见这个就代表成功了
5.分词测试
参考文章:
https://blog.csdn.net/WangSir_/article/details/79163695
https://blog.csdn.net/u011052863/article/details/80281941