solr-7.6.0.tgz安装与中文分析器
solr-7.6.0.tgz安装
1.下载地址
http://lucene.apache.org/solr/
2 配置solr 到tomcat(关键)
将solr 的webapp文件复制到tomcat的webapps目录下并命名为solr
3 配置依赖包
将solr下 /ext 文件夹中 所有的jar 包复制到 tomcat 里的solr 目录下的WEB-INF/lib 下
cp -r /opt/solr-7.6.0/server/lib/ext/ /opt/tomcat-solr/webapps/solr/WEB-INF/lib/
将solr下 server/lib/metrics开头的jar包复制到 tomcat里的solr 目录下的WEB-INF/lib 下
cp -r /opt/solr-7.6.0/server/lib/metrics*.jar /opt/tomcat-solr/webapps/solr/WEB-INF/lib/
4 创建tomcat solr 的 classes 文件
mkdir /opt/tomcat-solr/webapps/solr/WEB-INF/classes
复制 jetty-logging.properties,log4j2.xml 到 classes 文件夹下
cp /opt/solr-7.6.0/server/resources/jetty-logging.properties /opt/tomcat-solr/webapps/solr/WEB-INF/classes
cp /opt/solr-7.6.0/server/resources/log4j2.xml /opt/tomcat-solr/webapps/solr/WEB-INF/classes
5 添加日志目录
修改tomcat的bin/catalina.sh文件
大概246行的位置添加
set "JAVA_OPTS=$JAVA_OPTS -Dsolr.log.dir={你的日志目录}"
6 创建 solr 的core 的主目录(也就是存放core的位置)
cp -r /opt/solr-7.6.0/server/solr /opt/solrhome
7 修改配置文件指定solr的home
vim /opt/tomcat-solr/webapps/solr/WEB-INF/web.xml
添加以下内容:(注意第三行的值要替换成你们solr的home的绝对路径)
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/opt/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
8 解决限制资源访问
如果我们按照上面的配置好了,并启动好了tomcat,那么我们直接去访问我们的solr 会发现这个错:
HTTP Status 403 - Access to the requested resource has been denied,拒绝我们的访问资源请求。
解决办法:
注释solr/web.xml掉以下内容
<!-- 内容要注释掉
<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>
-->
9 启动成功访问如下图示
然后启动tomcat ,我们访问:http://ip:port/solr/index.html
10 新建core
a 创建core 目录
我这里的solr 的home目录是 /opt/solrhome
mkdir /opt/solrhome/test1
b 添加配置文件
将配置文件复制到 test1 目录下
cp /opt/solrhome/configsets/_default/conf/ /opt/solrhome/test1/
c 添加data目录
用于存放数据
mkdir /opt/solrhome/test1/data/
d 添加core.properties 文件
name=test1 ,test1值换成你们core的名称。
echo "name=test1" >/opt/solrhome/test1/core.properties
我们重新启动就可以在 core 看到我们新加的目录名称了。
e 启动效果图
到的问题以及解决办法:
错误内容**
2019/1/9 上午11:01:16
WARN false x:ljf_dev SolrConfig Couldn't add files from /opt/solrhome/ljf_dev/../../../../contrib/extraction/lib filtered by .*\.jar to classpath: /opt/solrhome/ljf_dev/../../../../contrib/extraction/lib
2019/1/9 上午11:01:16
WARN falsex:ljf_dev SolrConfig Couldn't add files from /opt/solrhome/ljf_dev/../../../../dist filtered by solr-cell-\d.*\.jar to classpath: /opt/solrhome/ljf_dev/../../../../dist
错误原因
上面的错误是说加载不到那些jar包 ,上面的这些jar包还在我们解压的文件里面,它肯定是找不到,我们先找到我们这个配置文件,然后修改它寻找的路径。
配置文件是 core 目录下的 conf 里的 solrconfig.xml
我们可以看到默认的配置路径是: 这个路径是solr的安装路径,我们可以更改成绝对路径
<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" />
解决办法
将那些jar包放在一个固定路径,然后更改配置文件里的路径为绝对路径
#备份下配置文件
cp /opt/solrhome/test1/conf/solrconfig.xml /opt/solrhome/test1/conf/solrconfig.xml.bak
#将依赖文件复制到 tomcat solr 下
cp -r /opt/solr-7.6.0/dist/ /opt/tomcat-solr/webapps/solr/
cp -r /opt/solr-7.6.0/contrib/ /opt/tomcat-solr/webapps/solr/
然后更改配置文件 /opt/solrhome/test1/conf/solrconfig.xml 修改为绝对路径,下面为为修改后的。
<lib dir="/opt/tomcat-solr/webapps/solr/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/contrib/langid/lib/" regex=".*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/contrib/velocity/lib" regex=".*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/dist/" regex="solr-velocity-\d.*\.jar" />
这样重新启动tomcat 就不会再有警告了。
11 配置IK中文分词器
a 下载 IKAnalyzer6.5.0.jar
百度网盘下载地址
链接:https://pan.baidu.com/s/1dUQM9vuRGID5ZnpvvNG4NA
提取码:hpcj
下载 IKAnalyzer6.5.0.jar,然后复制到tomcat的webapps/solr/WEB-INF/lib/目录下
添加如下配置文件到 webapps/solr/WEB-INF/classes/ 目录下,同时添加扩展词典ext.dic和停用词典stopword.dic
webapps/solr/WEB-INF/classes/IKAnalyzer.cfg.xml
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">ext.dic;</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">stopword.dic;</entry>
</properties>
b 增加新的字段类型
修改配置文件 solrhome\collection1\conf\managed-schema:
solrhome\collection1\conf\managed-schema
在<schema…> 标签下增加如下代码
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="mytext_ik" type="text_ik" indexed="true" stored="true" multiValued="false" />
效果如图
重新测试分词 如图所示,使用中文分词后,就可以看到分词的效果了。 注: FieldType 记得选增加新的字段类型 中的 text_ik 或者 mytext_ik