准备工作
- 下载solr和tomcat
solr-4.8.1.tgz,apache-tomcat-7.0.54.tar.gz
- 打开/home/cluster,解压缩
tar zxvf apache-tomcat-7.0.54.tar.gz
tar zxvf solr-4.8.1.tgz
开始安装配置solr
- 建立solrhome
mkdir -p /home/cluster/solrhome
- 把solr的war包拷贝出来 并且重命名为solr.war 放到任意文件夹 本例将其放到 solrhome下面
cp /home/cluster/solr-4.8.1/dist/solr-4.8.1.war /home/cluster/solrhome/solr.war
- 然后 将/home/cluster/solr-4.8.1/example/solr 文件夹拷贝到 solrhome文件夹下面(此例子目录是单core模式 如果是多core模式 则拷贝multicore)
cp -r /home/cluster/solr-4.8.1/example/solr /home/cluster/solrhome
- 然后将解压后solr-4.8.1文件夹中的contrib和dist文件夹,拷贝到/home/soft/solr-4.5.1/example/solr /home/soft/solrhome/ solr下
cp -rf /home/cluster/solr-4.8.1/contrib /home/cluster/solrhome/solr
cp -rf /home/cluster/solr-4.8.1/dist /home/cluster/solrhome/solr
配置tomcat
- 在 tomcat的conf/Catalina/localhost/文件夹下面 建立solr.xml(docBase指向war solr/home 指向sorlhome里面的solr文件夹)
vi conf/Catalina/localhost/solr.xml
<?xml version="1.0" encoding="utf-8"?>
<Context docBase="/home/cluster/solrhome/solr.war" reloadable="true" >
<Environment name="solr/home" type="java.lang.String" value="/home/cluster/solrhome/solr/" override="true" />
</Context>
- solr的日志相关的jar包
把/home/cluster/solr-4.8.1/example/lib/ext 下面的全部jar 拷贝到 tomcat 的lib文件夹下面
把 /home/cluster/solr-4.8.1/example/resources 下面的log4j配置文件 拷贝到 tomcat的 lib文件夹下面
- 单机版的配置修改
找到 每个collection下面的conf文件夹里面的solrconfig.xml
将<searchComponent name="clustering" enable="${solr.clustering.enabled:true}" class="solr.clustering.ClusteringComponent" >
改成<searchComponent name="clustering" enable="${solr.clustering.enabled:false}" class="solr.clustering.ClusteringComponent" >
- 修改solrconfig.xml文件中的引入的jar包位置
将
<lib dir="../../../contrib/extraction/lib" regex=".*.jar" />
<lib dir="../../../dist/" regex="solr-cell-d.*.jar" />
<lib dir="../../../contrib/clustering/lib/" regex=".*.jar" />
<lib dir="../../../dist/" regex="solr-clustering-d.*.jar" />
<lib dir="../../../contrib/langid/lib/" regex=".*.jar" />
<lib dir="../../../dist/" regex="solr-langid-d.*.jar" />
<lib dir="../../../contrib/velocity/lib" regex=".*.jar" />
<lib dir="../../../dist/" regex="solr-velocity-d.*.jar" />
改为绝对路径
<lib dir="/home/cluster/solrhome/solr/contrib/extraction/lib" regex=".*.jar" />
<lib dir="/home/cluster/solrhome/solr/dist/" regex="solr-cell-d.*.jar" />
<lib dir="/home/cluster/solrhome/solr/contrib/clustering/lib/" regex=".*.jar" />
<lib dir="/home/cluster/solrhome/solr/dist/" regex="solr-clustering-d.*.jar" />
<lib dir="/home/cluster/solrhome/solr/contrib/langid/lib/" regex=".*.jar" />
<lib dir="/home/cluster/solrhome/solr/dist/" regex="solr-langid-d.*.jar" />
<lib dir="/home/cluster/solrhome/solr/contrib/velocity/lib" regex=".*.jar" />
<lib dir="/home/cluster/solrhome/solr/dist/" regex="solr-velocity-d.*.jar" />
配置IK分词
下载IK Analyzer 2012FF_hf1.zip(这个版本支持4.0以上)
解压后将IKAnalyzer2012FF_u1.jar放到tomcat/webapps/solr/WEB-INF/lib下面,并且在 tomcat/webapps/solr/WEB-INF/下面 创建classes目录 然后将IK****.zip 解压缩后将IKAnalyzer.cfg.xml 和stopword.dic 两个文件拷贝到classes目录
这个不一定用配,得看文件中是否配过了
修改 solrhome 下面的collection1/conf/schema.xml 加入如下类型
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
</fieldType>
Ok 启动你的tomcat 访问http://localhost:8080/solr 看下管理界面 可进入测试了
和mysql数据库配置
第一步导依赖包:
Solr包(在solr-4.8.1/dist目录下),如果找不到包的话,可用使用find –name solr-datai*查询一下
solr-dataimporthandler-4.8.1.jar
solr-dataimporthandler-extras-4.8.1.jar
数据库包
mysql-connector-java-3.0.10-stable-bin.jar放到 /home/cluster/solrhome/solr/dist下
同时在/home/cluster/solrhome/solr/collection1/conf下的solrconfig.xml引入jar
<lib dir="/home/cluster/solrhome/solr/dist/" regex="solr-dataimporthandler-d.*.jar" />
<lib dir="/home/cluster/solrhome/solr/dist/" regex="mysql-connector-java-3.0.10-stable-bin.jar" />
第二步
配置solrconfig.xml
在solrconfig.xml中加入如下配置:
<requestHandler name = "/dataimport" class = "org.apache.solr.handler.dataimport.DataImportHandler" >
<lst name = "defaults" >
<str name = "config" >data-config.xml</str>
</lst>
</requestHandler >
第三步
创建data-config.xml文件,在使用vi编辑这个文件的时候注意,属性之间的空格,注意不要用汉字的双引号,同时注意field是在schema.xml中定义过的属性。
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/****?useUnicode=true&characterEncoding=utf-8" user="root" password="mysql"/>
<document name="search_object">
<entity name="cource" query="SELECT id,name,description,price_per_day FROM t_course">
<field column="id" name="id"/>
<field column="name" name="name"/>
<field column="description" name="description"/>
<field column="price_per_day" name="price_per_day"/>
<entity name="courceImage"
query="SELECT file_path FROM t_course_image,t_course WHERE course_id ='${cource.id}'">
<field column="file_path" name="file_path"/>
</entity>
</entity>
</document>
</dataConfig>
在D: omcat-6.0.18webappssolrWEB-INFlib中加入mysql驱动包mysql-connector-java-5.0.4-bin.jar
6,将下载的apache-solr-3.6.2/dist/文件夹中的solr-dataimporthandler-4.8.1.jar、solr-dataimporthandler-extras-4.8.1.jar
拷贝到D: omcat-6.0.18webappssolrWEB-INFlib文件夹中
配置完上边的内容后,可以启动tomcat进行数据导入,按下边图片操作即可
成功之后,可以查询到结果了