环境准备
1、系统:CrntOS6.5
2、JDK1.8
3、Tomcat8
4、solr-6.6.2.tgz
这里JDK的安装就不多介绍,可以自己找资料安装
安装Tomcat
下载Tomcat包,解压,将其放到指定文件夹
/usr/local/solr/tomcat
为了避免端口号的冲突,修改conf下的server.xml
<Serverport="18005" shutdown="SHUTDOWN">
<Connectorport="18080" protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="18443" URIEncoding="UTF-8"/>
<Connector port="18009" protocol="AJP/1.3" redirectPort="18443" />
打开防火墙端口
centOS7:
sudo firewall-cmd --zone=public --add-port=18080/tcp --permanent
如果不使用“--permanent”标记,把么防火墙规则在重启后会失效。
centOS6:
使用iptables的第一条命令可以通过防火墙开启一个新TCP/UDP端口。为了永久保存修改过的规则,还需要第二条命令。
sudo iptables -I INPUT -p tcp -m tcp --dport 18080 -j ACCEPT
sudo service iptables save
安装Solr
1、解压solr,把solr-6.6.2\server\solr-webapp
下的webapp
文件夹拷贝到tomcat的webapps
下,重命名为solr6,也可以是其他名字
2、拷贝solr-6.6.2\server\lib\ext
下的jar包以及lib
目录下gmetric4j-1.0.7.jar
,以metrics
开头的jar包,还有dist
下的solr-dataimporthandler
开头的两个jar包拷贝到 tomcat\webapps\solr6
项目的WEB-INF\lib
下
3、拷贝solr-6.6.2\server
下的solr
文件夹到其它非中文目录下,重命名为solrhome
,这里是建立到了solr6本身的安装目录下
/usr/local/solr/solrhome
4、修改tomcat\webapps\solr6(solr的项目名)\WEB-INF\web.xml
, 找到如下代码,去掉注释,/put/your/solr/home/here
改为你自己的solrhome
的路径
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solr/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
5、并将web.xml
下的这段代码注释掉,在文件末尾
<!-- 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、拷贝solr6.6.2\server\resources
下的log4j.properties
到tomcat\webapps\solr6\WEB-INF\classes
,如果WEB-INF下没有classes文件那么就创建一个classes
文件夹。修改solr.log=/usr/local/solr/solrhome/logs
(需要新建logs文件夹)
7、重启tomcat,访问solr时后面记得加上“index.html”
http://192.168.41.132:18080/solr6/index.html
问题:
解决:
将tomcat/webapps/solr6/WEB-INF/web.xml
下的这段代码注释掉,在文件末尾
<!-- 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>
-->
创建solrcore
点击 Add Core
出错了,提示缺少配置文件
官方给出的文件目录中有默认配置文件
solr-6.6.2/server/solr/configsets/basic_configs
下的conf文件夹
将conf复制到新建的core目录下,刚刚新建的Order目录在/usr/local/solr/solrhome/Order
然后再点击Add Core,添加成功
安装IK中文分词器
IKAnalyzer-6.5.0.jar
IKAnalyzer.cfg.xml
ext.dic
stopword.dic
第一步:把IKAnalyzer-6.5.0.jar
添加到solr工程中。把分析器使用的扩展词典以及配置文件添加到classpath中。
第二步:需要自定义一个FieldType。managed-schema
中定义。可以在FieldType中指定中文分析器。
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="text_ik" type="text_ik" indexed="true" stored="true" multiValued="false" />
第三步:重启tomcat