1、什么是solr
Solr是apache的顶级开源项目,它是使用java开发 ,基于lucene的全文检索服务器。Solr比lucene提供了更多的查询语句,而且它可扩展、可配置,同时它对lucene的性能进行了优化。
Solr是如何实现全文检索的呢?
索引流程:solr客户端(浏览器、java程序)可以向solr服务端发送POST请求,请求内容是包含Field等信息的一个xml文档,通过该文档,solr实现对索引的维护(增删改)
搜索流程:solr客户端(浏览器、java程序)可以向solr服务端发送GET请求,solr服务器返回一个xml文档。
Solr和lucene的区别
Lucene是一个全文检索引擎工具包,它只是一个jar包,不能独立运行,对外提供服务。solr是一个全文检索服务器,它可以单独运行在servlet容器,可以单独对外提供搜索和索引功能。Solr比lucene在开发全文检索功能时,更快捷、更方便。
2、Solr服务搭建
2.1 Solr的环境
①Solr是java开发,需要安装jdk
②安装环境Linux
③安装Tomcat运行Solr
2.2 搭建步骤
第一步:把solr 的压缩包上传到Linux系统;(下载链接:Solr官网下载链接)
第二步:解压solr(使用tar -zxvf命令)
第三步:安装tomcat,解压缩即可
第四步:把solr-4.10.3/example/webapps/solr.war部署到Tomcat的webapps目录下
第五步:解压缩war包,启动Tomcat解压,之后将war包删除
第六步:把solr-4.10.3/example/lib/ext目录下的所有的jar包,添加到solr工程,WEB-INF/lib中
[root@localhost ext]# pwd
/root/solr-4.10.3/example/lib/ext
[root@localhost ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
第七步:创建一个solrhome
solr-4.10.3/example/solr目录就是一个solrhome,复制此目录到/usr/local/solr/solrhome
[root@localhost example]# pwd
/root/solr-4.10.3/example
[root@localhost example]# cp -r solr /usr/local/solr/solrhome
[root@localhost example]#
solrhome目录中的内容:
第八步:关联solr及solrhome。需要修改solr工程的web.xml文件。
第九步:启动Tomcat,访问solr管理页面
http://192.168.25.154:8080/solr
linux中的配置方法和windows下的配置完全一样。
2.3 配置业务域
创建对应的业务域。需要制定中文分析器。
创建步骤:
第一步:把中文分析器添加到工程中。
- 把IKAnalyzer2012FF_u1.jar添加到solr工程的lib目录下
- 把扩展词典(ext.dic)、停用词典(stopword.dic)、配置文件(IKAnalyzer.cfg.xml)放到solr工程的WEB-INF/classes目录下。
IKAnalyzer.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">ext.dic;</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">stopword.dic;</entry>
</properties>
Stopword.dic:遇到如下的单词中文分词器就会忽略,因为这些词语没有什么意义
a
an
and
are
as
at
be
but
by
for
if
in
into
is
it
no
not
of
on
or
such
that
the
their
then
there
these
they
this
to
was
will
with
ext.dic:中文分词器遇到下面的特殊词汇,不会进行分词,而是当做一个整体,因此在这个文件中配置一些特殊词汇
全文搜索
刘周健
第二步:配置一个FieldType,制定使用IKAnalyzer
修改/sol