Solr是一种全文检索技术,在一些门户社区中能提高用户体验。Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
接下来,将介绍如何在Linux系统(Ubuntu)上安装部署solr服务(solr4.10.4)并简单的测试例子数据。由于之前我在本地机器(windows)上安装配置的时候采用了4.10.4版本,因此本教程也将采用solr4.10.4版本进行Linux的solr配置。
1.工具准备:
(1)Solr4.10.4的linux版本solr-4.10.4.tgz(网盘链接:https://pan.baidu.com/s/1bq9WTTd)
(2)JDK和Tomcat安装(这里参考我上一篇博文:http://blog.csdn.net/weixin_36413887/article/details/79066490)
(3)Xftp 5和Xshell 5工具(这里参考我上一篇博文:http://blog.csdn.net/weixin_36413887/article/details/79066490)
(4)mysql-connector-java-5.1.44-bin.jar驱动包(网盘链接:https://pan.baidu.com/s/1o9wJqX0)
2.搭建步骤:
(1)利用Xftp 5工具将本地机器的Solr-4.10.4.tgz包上传到Linux服务器的文件夹下(路径:/root);
(2)解压缩solr包至文件夹/usr中,并重命名为solr;如下所示
(Linux命令如下,路径需自行修改)
cd /usr
tar -zxvf /root/solr-4.10.4.tgz
右键解压后的文件夹重命名为solr
(3)把解压后重命名的/usr/solr/dist/solr-4.10.4.war 复制到tomcat目录的webapps下:
cd /usr/solr/dist
cp solr-4.10.4.war /usr/tomcat/apache-tomcat-7.0.67/webapps/
接下来便是解压,此处需注意已下命令的顺序
启动tomcat解压war包:
cp /usr/tomcat/apache-tomcat-7.0.67/bin
./startup.sh
关闭tomcat并删除war包
./shundown.sh
cd /usr/tomcat/apache-tomcat-7.0.67/webapps
rm -r solr-4.10.4.war
(4)将/usr/solr/example/lib/ext目录下的所有jar包复制到/usr/tomcat/apache-tomcat-7.0.67/webapps/solr/WEB-INF/lib/ 下
cp -r /usr/solr/example/lib/ext/* /usr/tomcat/apache-tomcat-7.0.67/webapps/solr/WEB-INF/lib/
(5)将/usr/solr/example目录中的solr文件夹复制到与tomcat同目录下并重命名为solrhome(存放检索的测试数据)
cp -r /usr/solr/example/solr/ /usr/tomcat/
右键重命名为solrhome文件夹如下所示
(6)将/usr/solr/example/resources下的log4j.properties文件复制到tomcat/webapps/solr/WEB-INF/classes目录下,如果没有classes文件夹则新建
cp -r /usr/solr/example/resources/log4j.properties /usr/tomcat/apache-tomcat-7.0.67/webapps/solr/WEB-INF/classes/
(7)在solr界面中,为了从数据库导入数据,需要用到dataimport包;将/usr/solr/dist目录下的solr-dataimporthandler-4.10.4.jar和solr-dataimporthandler-extras-4.10.4.jar复制到tomcat/webapps/solr/WEB-INF/lib/下
cp /usr/solr/dist/solr-dataimporthandler-4.10.4.jar /usr/tomcat/apache-tomcat-7.0.67/webapps/solr/WEB-INF/lib/
cp /usr/solr/dist/solr-dataimporthandler-extras-4.10.4.jar /usr/tomcat/apache-tomcat-7.0.67/webapps/solr/WEB-INF/lib/
(8)以上就配置好了solr的基本服务,接下来,导入测试数据;需要指定solr服务器的solrhome的位置。前面我们把solrhome放到了与tomcat同目录下;进入tomcat的webapps下的solr项目,修改其web.xml文件,指定solrhome的路径:具体操作如下:
利用Xftp 5打开/usr/tomcat/apache-tomcat-7.0.67/webapps/solr/WEB-INF目录下的web.xml文件,ctrl+f寻找“solr/home”的位置,找到注解,修改路径,并删掉该注解前后的<–和–>
(9)最后就是添加core了;由于solrhome下的collection1可以直接拿来测试,因此我们只需要修改collention1的配置就可以了;由于solr是基于lucene的java搜索引擎,因此我们需要mysql-connector-java-5.1.44-bin.jar驱动包(本片博客前面已提供网盘链接),由于java是跨平台的,因此驱动包的winsows和linux版本是一样的;把mysql的驱动包mysql-connector-java-5.1.44-bin.jar放到/usr/tomcat/apache-tomcat-7.0.67/lib/下;
(10)修改位于/usr/tomcat/solrhome/collection1/conf下的solrconfig.xml ,在最后面(< / config>之前 )加入如下内容:
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xmlstr>
lst>
requestHandler>
(11)在 solrconfig.xml的同级目录中,增加data-config.xml文件,在其中定义数据源,连接数据库信息,以及定义实体类
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://服务器IP/数据库名"
user="数据库用户名"
password="数据库密码"/>
<document>
<entity name="case_2007" pk="id"
query="select * from case_2007">
<field column="id" name="Id"/>
<field column="文书ID" name="文书ID"/>
.......
.......
.......(这里请根据数据库测试数据补全)
entity>
document>
dataConfig>
(12)因为前面的field需要映射,因此我们需要修改与solrconfig.xml的同级目录中的scheme.xml,在其中添加data-config.xml中定义的field信息(如果已存在就不需要添加,上面的例子中除id外,其他都需定义),在最后添加
"文书ID" type="string" indexed="true" stored="true" />
至此,大功告成!!!
(13)启动tomcat,访问http://服务器IP:8080/solr,可以看到如下界面:
有任何疑问欢迎留言探讨!告辞!