Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
一、环境搭建
1.环境准备:
apache-tomcat-8.5.34
solr-4.10.3.tgz.tgz
IK Analyzer 2012FF_hf1(分词器)
下载地址:https://download.csdn.net/download/qq_756589808/10713552
2.解压tomcat并创建solr文件夹
[root@localhost ~]# tar -zxf apache-tomcat-8.5.34.tar.gz
[root@localhost ~]# mkdir /usr/local/solr
3.将tomcat解压后的文件夹拷贝到solr的tomcat文件夹中
[root@localhost ~]# cp apache-tomcat-8.5.34 /usr/local/solr/tomcat -r
4.把solr的压缩包上传到服务器后并解压,然后把/root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。并改名为solr.war
[root@localhost ~]# tar -zxf solr-4.10.3.tgz.tgz
[root@localhost ~]# cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war
5.解压war包。启动tomcat自动解压。然后关闭tomcat,删除war包
6.把/root/solr-4.10.3/example/lib/ext 目录下所有的jar包复制到solr工程中
[root@localhost ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
7.创建solrhome文件夹,该文件夹用来存放solr服务器所有配置文件。将/root/solr-4.10.3/example中的solr文件夹拷贝至solrhome
[root@localhost example]# cp -r solr /usr/local/solr/solrhome
8.在solr工程中的web.xml文件中指定solrhome的位置
进行访问http://47.104.224.211:8080/solr
二、配置
-----中文分析器配置
1.把IK-Analyzer分析器的文件夹上传到服务器
2.把分析器的jar包添加到solr工程中
[root@localhost IKAnalyzer2012FF_hf1]# cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
3.把IKAnalyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的WEB-INF/classes文件夹中(没有该目录则不用管)
[root@localhost IKAnalyzer2012FF_hf1]#cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
4.在solrhome/collection1/conf/schema.xml中配置filedType
-----业务字段配置
1.在solrhome/collection1/conf/schema.xml中配置,根据业务需要选择相应的字段对应solr的字段
<!-- IKAnalyzer-->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="user_name" type="string" indexed="true" stored="true"/>
<field name="age" type="long" indexed="true" stored="true"/>
<field name="phone" type="string" indexed="true" stored="true"/>
<field name="job" type="string" indexed="false" stored="true" />
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="user_name" dest="item_keywords"/>
<copyField source="phone" dest="item_keywords"/>
<copyField source="job" dest="item_keywords"/>
2.重启tomcat