linux下安装部署solr5.4.0详细记录

来源:互联网 发布:js发post请求 ajax 编辑:程序博客网 时间:2024/06/05 01:19

最近项目中需要用到搜索,之前没接触过,于是四方打听,得知solr是一个非常不错的选择,经过反复研究,终于入门了点 ,为了加深理解,有些地方我将命令也记录了下来。由于很少写博客,加上资历不深,所以,不足之处,望谅解!
注意:本文中的tomcat7所在目录为/home/developer/目录下
1、官网下载solr-5.4.0.tgz并上传到linux服务上
2、新建一个solr5目录解压
解压之后的solr5.4.0文件夹包含了几乎所有你需要的东西。解压命令如下:

tar xvfz solr-5.4.0.tgz

3、复制solr-5.4.0/server/solr-webapp/webapp到tomcat下的webapps目录下,改名为solr。

cp -r /home/developer/solr5/solr-5.4.0/server/solr-webapp/webapp /home/developer/tomcat7/webapps/mv webapp solr

4、将solr-5.4.0/server/lib/ext/目录下的所有jar包复制到tomcat/webapps/solr/WEB-INF/lib/下

cp -r /home/developer/solr5/solr-5.4.0/server/lib/ext/* /home/developer/tomcat7/webapps/solr/WEB-INF/lib/ 

5、将solr-5.4.0/server/solr目录复制到tomcat目录下并重命名为solr_home(存放检索数据)

cp -r /home/developer/solr5/solr-5.4.0/server/solr/ /home/developer/tomcat7/mv solr solrhome

6、将solr-5.4.0/server/resouce下的log4j.properties文件复制到tomcat/weapps/solr/WEB-INF/classes目录下,如果没有则新建

cp /home/developer/solr5/solr-5.4.0/server/resources/log4j.properties /home/developer/tomcat7/webapps/solr/WEB-INF/classes/

7、将solr-5.4.0/dist目录下的solr-dataimporthandler-5.4.0.jar和solr-dataimporthandler-extras-5.4.0.jar复制到tomcat/webapps/solr/WEB-INF/lib/下,这个是为了以后导入数据库表数据

cp /home/developer/solr5/solr-5.4.0/dist/solr-dataimporthandler-5.4.0.jar /home/developer/tomcat7/webapps/solr/WEB-INF/lib/ cp /home/developer/solr5/solr-5.4.0/dist/solr-dataimporthandler-extras-5.4.0.jar /home/developer/tomcat7/webapps/solr/WEB-INF/lib/

到这里,solr5的环境就搭建好了,重启tomcat服务,访问http://192.168.30.9:8080/solr/index.html可以看到solr控制台
下一步就是添加core了
8、在tomcat/solrhome/目录下创建core_activity(可以自定义),在其目录下创建data文件夹,并将tomcat7/solrhome/configsets/basic_configs/目录下的conf文件夹复制到core_activity下,core就创建完成了,然后在solr控制台添加core_activity就好了
mkdir core_activity,注意要把真个conf文件夹都拷贝过去,否则请往下看15条

cp -r /home/developer/tomcat7/solrhome/configsets/basic_configs/conf/ /home/developer/tomcat7/solrhome/core_activity

导入数据库表数据
9、首先把mysql的驱动包mysql-connector-java-5.1.21.jar 放到/home/developer/tomcat7/lib/下

10、修改位于tomcat7/solrhome/core_activity下的solrconfig.xml ,加入如下内容

<requestHandler name="/dataimport" class="solr.DataImportHandler">     <lst name="defaults">       <str name="config">data-config.xml</str>     </lst>  </requestHandler>

11、在 solrconfig.xml的同级目录中,增加data-config.xml,在其中定义数据源,定义实体类

<?xml version="1.0" encoding="UTF-8" ?><dataConfig><dataSource name="solrDB" type="JdbcDataSource" driver="com.mysql.jdbc.Driver"url="jdbc:mysql://192.168.30.17:3306/quncao_app_beta" user="quncao" password="quncao"/><document>    <entity pk="ID" dataSource="solrDB" name="tb_activity"     query="select id,title,city_id from tb_activity"    deltaQuery="select ID from tb_activity where update_time>'${dih.last_index_time}'"    deltaImportQuery="select ID,title,cityId from tb_activity where ID='${dih.delta.id}'">        <field column="ID" name="id"/>        <field column="TITLE" name="title"/>         <field column="CITY_ID" name="cityId"/>         <field column="UPDATE_TIME" name="update_time"/>        </entity></document>om</dataConfig>

12、修改Scheme.xml,在其中添加data-config.xml中定义的field信息(如果已存在就不需,本例中除id外,都需定义)

<field name="title" type="textMaxWord" indexed="true" stored="true"/><field name="cityId" type="int" indexed="true" stored="true"/><field name="update_time" type="date" indexed="true" stored="true"/>

13、其中title的类型为textMaxWord ,这个是mmesg4j分词,那么这时候需要再引入两个jar包
mmseg4j-core-1.10.1-SNAPSHOT.jar和mmseg4j-solr-2.3.1-SNAPSHOT.jar

<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100">     <analyzer>     <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>     </analyzer></fieldtype><fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">     <analyzer>    <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" />     </analyzer></fieldtype><fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">     <analyzer>    <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="n:/custom/path/to/my_dic" />     </analyzer></fieldtype>

14、在solrconfig.xml同级目录中新建dataimport.properties,添加如下内容

last_index_time=2016-01-20 15:29:07
tb_activity.last_index_time=2016-01-20 15:29:07

15、操作完毕后碰到一个异常

Properties is not writable. Delta imports are supported by data config but will not work.

我认为是文件读写权限的问题,经过反复观察,我发现是少建了一级目录,应该在tomcat7/solrhome/core_activity下建一个conf目录,把所有的配置文件都放进去

16、15、增量更新索引地址:

http://192.168.30.9:8080/solr/core_activity/dataimport?command=delta-import

由于其自带的定时更新没有研究出来,暂时采用通过spring定时器或者linux的定时任务执行。

1 0
原创粉丝点击