solr-7.6.0.tgz安装与中文分析器

solr-7.6.0.tgz安装

1.下载地址

http://lucene.apache.org/solr/

solr-7.6.0.tgz安装与中文分析器

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

solr-7.6.0.tgz安装与中文分析器

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 启动效果图

solr-7.6.0.tgz安装与中文分析器

到的问题以及解决办法:

错误内容**

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

solr-7.6.0.tgz安装与中文分析器