Solr基本搭建
一、什么是Solr?
Solr 是Apache下的一个顶级开源项目,采用Java开发,基于Lucene的全文搜索服务器,
Solr 就是一个war包,可独立运行在Jetty、Tomcat服务器上。
Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
二、Solr和Lucene的区别?
1、Lucene的工作量大;
2、Solr是基于Lucene的框架,便捷完善,可配置可扩展,可以高效完成站内搜索功能。
Solr的效率比数据库会高很多。
话不多说,开始搭建。。。。。。
三、搭建前准备?
本次搭建是在Linux的环境下的,所以要提前下载好这些包和装好Linux环境。(运行tomcat需要安装jdk,在安装好系统之后要先安装jdk1.8)
链接: https://pan.baidu.com/s/1x3WhgVBWKh0RsoEBg7pk0Q
提取码: 9tby
需要这些资料的可以取。
四、开始搭建(以下的命令我都简单的写以下,知道是什么意思就行了)
1、上传apache-tomcat-8.5.59.tar.gz、solr-4.3.1.tgz至Linux服务器;
2、分别解压两个压缩包;
tar -zxvf apache-tomcat-8.5.59.tar.gz solr-4.3.1.tgz
解压之后如图:
3、找到solr-4.3.1下的dist目录,里面有一个solr-4.3.1.war的包,将这个包拷贝到tomcat服务器的webapps目录下;
cp /dist/solr-4.3.1.war /tomcat/webapps/solr.war
如图所示:
4、拷贝jar包
找到solr-4.3.1里面的5个jar包,路径如下:/solr-4.3.1/example/lib/ext 。
如图所示:
将这5个jar拷贝到tomcat服务器里solr项目的/WEB-INF/lib下面,路径如下:/solr/WEB-INF/lib。
5、在lib的同级目录下新建一个文件夹solrhome作为索引库,此目录随便放在哪里都可以,但是一定要记住位置。我是将solrhome和tomcat放在一个包下。如图所示:
6、配置solrhome路径。找到/solr/WEB-INF/web.xml
修改web.xml。如图所示:
红色的框里面的路径就是新建solrhome的路径。、
7、启动tomcat
进入搭配tomcat/bin;
./startup.sh 启动
./shutdown.sh 停止
最后访问项目: http://ip:8080/solr
最终展示效果如图所示。
至此,Linux上部署Solr基本上已经完成。
五、IK分词器
以上已经完成了Solr的基本部署。下面来说一下Solr后期的使用。
1、第一次启动,Core Admin里面没有core ,需要自己进行添加;添加如下图所示:
2、添加之后二级菜单就会显示已经添加的索引库,如图所示:
首先做的还是拷贝jar包,
将下载下来的jar包ik-analyzer-5.01-for solr4.3.jar拷贝在solr/WEB-INF/lib下。
然后在WEB-INF下面新建一个文件夹classes,这个文件夹用来存放IK分词器的配置文件。在里面需要新建三个文件。如图:
其中ext.dic和stopword.dic分别是扩展词汇和扩展停止词汇。
IKAnalyzer.cfg.xml里面的配置如下:
配置完毕之后就可以进行查询了。
如果我不在扩展词汇和扩展停止词汇里面添加词汇进行查询:
当我再扩展词汇中添加“吴恒”之后,再次查询:
会发现添加的信息会组成一个词语来被查询出来。
以上就是IK分词器的基本配置。
在Schema.xml里面还可以配置一些IK分词器的域(solrhome/collection1/config),如图所示:
六、solr导入数据库数据
首先还是需要导包。这里需要拷贝三个jar包,如图:
其中solr的两个jar包在solr-4.3.1/dist下,如图:
然后修改配置文件solrconfig.xml,这个文件在solrhome/collection1 的config下面,如图:
然后在solrhome里面添加:
并且在当前目录新建一个data-config.xml的文件,里面配置数据库相关的信息,如图:
然后在数据库里面新建一个数据库表student。如图:
只是配置上面的还不够,还需要在schema.xml里面配置域:
<field name="name" type="text_ik" indexed="true" stored="true"/>
<field name="age" type="text_ik" indexed="true" stored="true"/>
以上的配置配置完毕之后,就可以重启tomcat。
然后按照图示:
只有这步操作操作完毕之后,数据库的信息才已经导入Solr中。
最后查询出来的结果如图所示: