系统windows7 tomcat9.0.7
1、下载
从官网下载地址中下载对应版本,我下载的是最新版solr-7.5.0.zip
解压后的目录结构:
启动solr
在浏览器中访问http://localhost:8983/solr/#/
2、将solr部署到tomcat服务器,我使用的是tomcat9
1.将solr-7.5.0\server\solr-webapp下的webapp文件夹复制到apache-tomcat-9.0.7\webapps目录下,并重命名为solr(名称可以随意)
2. 复制solr-7.5.0\server\lib\ext下的所有jar包到apache-tomcat-9.0.7\webapps\solr\WEB-INF\lib下(即刚刚复制并重命名为solr的文件夹下)
3. 复制solr-7.5.0\server\lib下所有metrics-开头的jar包(一共有5个),gmetric4j-1.0.7.jar(这个jar包是后来在别的博客上看到的,我没有复制,也没有出错)到aapache-tomcat-9.0.7\webapps\solr\WEB-INF\lib下
4. 复制solr-7.5.0\server\resources下的log4j2.xml文件到webserver\apache-tomcat-9.0.7\webapps\solr\WEB-INF\classes下(没有classes文件夹,需要手动新建)
5. 复制solr-7.5.0\server\solr文件夹,到任意路径下(我这里放在了tomcat的根目录下),并重命名为solr_home(命名随意)
6. 修改apache-tomcat-9.0.7\webapps\solr\WEB-INF下的web.xml文件
添加下面这段(之前的xml中没有这段):注意里面填写的是你新建的solr_home路径,因人而异
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>E:/tomcat/apache-tomcat-9.0.7/solr_home</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> -->
7、在solr_home目录下新建文件夹logs,用来存放运行日志
8、修改Tomcat\bin下的catalina.bat,增加solr.log.dir系统变量,指定solr日志记录存放地址,即刚刚创建的logs文件夹地址
9、新建核心,在solr_home文件夹下创建一个mycore(名字随意)文件夹,代表一个solr工程,solr_home下可以有多个solr工程,并复制solr_home/configsets/_default(它是从solr-7.5.0/server/solr/..复制过来的,见步骤5)下的confi文件夹到mycore下。并在mycore下创建空文件夹data和core.properties文件。
core.properties文件内容如下:(其实也可以不配置这个文件,让solr自动生成,后来在tomcat中部署后发现)
name=mycore
最后mycore文件夹结构如下:
10、修改solr-home\mycore\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" /> -->
//上面是原来的,注释掉,添加你的solr安装目录,我这里的是E:/solr-7.5.0
<lib dir="${solr.install.dir:E:/solr-7.5.0}/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:E:/solr-7.5.0}/dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="${solr.install.dir:E:/solr-7.5.0}/contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:E:/solr-7.5.0}/dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="${solr.install.dir:E:/solr-7.5.0}/contrib/langid/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:E:/solr-7.5.0}/dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="${solr.install.dir:E:/solr-7.5.0}/contrib/velocity/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:E:/solr-7.5.0}/dist/" regex="solr-velocity-\d.*\.jar" />
11、启动Tomcat,在浏览器访问http://localhost:8080/solr/index.html
在本地启动tomcat: 双击startup.bat
在idea中启动tomcat后访问,要注意勾选上
配置ikanalyzer中文分词器
solr自带有中文分词器,将solr-7.5.0/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.5.0.jar复制到tomcat/apache-tomcat-9.0.7/webapps/solr/WEB-INF/lib中,并修改mycore/conf/managed-schema文件,添加
<fieldType name="text_hmm_chinese" 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>
即可,但是自带的中文分词器扩展性不好,一般选用第三方的分词器ikanalyzer
先下载solr7版本的ik分词器,下载地址:http://search.maven.org/#search%7Cga%7C1%7Ccom.github.magese
分词器GitHub源码地址:https://github.com/magese/ik-analyzer-solr7
将下载好的jar包放入tomcat/apache-tomcat-9.0.7/webapps/solr/WEB-INF/lib目录中,并修改mycore/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>
即可
测试中文分词
参考博文: