一、材料准备
1.下载solr7.2,解压
下载:wget http://mirrors.shuosc.org/apache/lucene/solr/7.2.0/solr-7.2.0.tgz
解压:tar -zxvf solr-7.2.0.tgz
2.下载tomcat,解压
下载:wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-9/v9.0.2/bin/apache-tomcat-9.0.2.tar.gz
解压:tar -zxvf apache-tomcat-9.0.2.tar.gz
二、搭建单机版
1.创建solr7文件夹存放solr
mkdir /usr/local/solr7
2.进入到solr7文件夹
cd solr7
3.把解压完的apache-tomcat-9.0.2命名为tomcat,并且拷贝到solr7文件夹下
重命名:mv apache-tomcat-9.0.2 tomcat
拷贝:cp -r tomcat/ /usr/local/solr7
4.把solr-7.2.0/server/solr-webapp里面的webapp拷贝到tomcat 的webapps下,重命名为solr
拷贝:cp -r /root/solr-7.2.0/server/solr-webapp/webapp /usr/local/solr7/tomcat/webapps
重命名:mv webapps/ solr
5.拷贝solr-7.2.0\server\lib\ext 下的jar包以及lib目录下gmetric4j-1.0.7.jar,以metrics开头的jar包拷贝到 tomcat\webapps\solr 项目的WEB-INF\lib下
进入ext文件夹:cd /root/software/solr-7.2.0/server/lib/ext
拷贝:cp * /usr/local/solr7/tomcat/webapps/solr/WEB-INF/lib
进入到lib文件夹:cd /root/software/solr-7.2.0/server/lib
拷贝:cp gmetric4j-1.0.7.jar /usr/local/solr7/tomcat/webapps/solr/WEB-INF/lib
拷贝:cp metrics* /usr/local/solr7/tomcat/webapps/solr/WEB-INF/lib
6.拷贝solr-7.2.0\server 下的solr文件夹到其它非中文目录下,重命名为solrhome,我是建立到了solr7本身的安装目录下
进入server文件夹:cd /root/software/solr-7.2.0/server
拷贝:cp -r solr /usr/local/solr7
重命名:mv solr solrhome
7.修改/usr/local/solr7/tomcat/webapps/solr/WEB-INF\web.xml, 找到如下代码,去掉注释,/put/your/solr/home/here 改为你自己的solrhome的路径
进入WEB-INF文件夹:cd /usr/local/solr7/tomcat/webapps/solr/WEB-INF
编辑web.xml:vim web.xml
修改的内容如下:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solr7/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
8.拷贝solr7.2.0\server\resources下的log4j.properties到/usr/local/solr7/tomcat/webapps/solr/WEB-INF\classes,如果WEB-INF下没有classes文件那么就创建一个classes文件夹
进入resources文件夹:cd /root/software/solr-7.2.0/server/resources
拷贝:cp log4j.properties /usr/local/solr7/tomcat/webapps/solr/WEB-INF/classes
9.启动tomcat,访问solr时后面记得加上“index.hmtl”
进入bin文件夹:cd /usr/local/solr7/tomcat/bin
启动:./startup.sh
10.查看tomcat是否成功启动,没能成功启动大多数原因是端口没打开,tomcat默认8080端口,这里建议端口改成solr默认的8983端口
ps aux|grep tomcat
11.注意:如果出现403错误,编辑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>-->
三、创建core
1.点击Core Admin,再点击Add Core
2.报错,提示缺少配置文件:Error CREATEing SolrCore 'new_core': Unable to create core [new_core] Caused by: Can't find resource 'solrconfig.xml' in classpath or '/usr/local/solr7/solrhome/new_core'
3.拷贝server/solr/configsets/_default/下的conf文件夹到solr7home/new_core文件夹下
进入_default文件夹:cd /root/software/solr-7.2.0/server/solr/configsets/_default
拷贝:cp -r conf/ /usr/local/solr7/solrhome/new_core
4.点击Add Core,成功。
四、配置中文分析器
1.拷贝dist文件夹里的solr-dataimporthandler-7.2.0.jar
进入dist文件夹:cd /root/software/solr-7.2.0/dist
拷贝:cp solr-dataimporthandler-7.2.0.jar /usr/local/solr7/tomcat/webapps/solr/WEB-INF/lib
2.拷贝lucene-libs文件夹里的中文分析器的jar包
进入lucene-libs文件夹:cd /root/software/solr-7.2.0/contrib/analysis-extras/lucene-libs
拷贝:cp * /usr/local/solr7/tomcat/webapps/solr/WEB-INF/lib
3.编辑conf文件夹里的managed-schema文件
进入conf文件夹:cd /usr/local/solr7/solrhome/new_core/conf
编辑managed-schema,在最后面的地方添加FieldType类型:vim managed-schema
<!-- ChineseAnalyzer -->
<fieldType name="text_ik" 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>
4.自定义业务域
编辑managed-schema,在最后面的地方添加自定义业务与:vim managed-schema
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price" type="plong" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="false" />
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>
5.重启tomcat,就能发现自定义域已经出现
6.测试分词效果