|
一、环境准备:
系统环境:ubuntu14.04
tomcat 8.0.20
jdk 1.8.0_40
solr-5.0.0
二、安装solr
1、下载solr官网地址: http://apache.fayea.com/lucene/solr/5.0.0/
2、解压solr
solin@solin:~/package$ tar -zxvf solr-5.0.0.tgz
3、进入solr-5.0.0/server/webapps并解压war包
solin@solin:~/package$cd /solr5.0/solr-5.0.0/server/webapps
solin@solin:~/package$jar -xvf solr.war
4、进入solr-5.0.0/server/webapps/WEB-INF,修改web.xml
solin@solin:~/package$ cd solr-5.0.0/server/webapps/WEB-INF/
solin@solin:~/package$ vim web.xml
将env-entry注释放开,修改env-entry-value的文件路径
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/solr-5.0.0/example/example-DIH/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
5、复制/solr-5.0.0/server/lib/ext下的jar包到/solr-5.0.0/server/webapps/WEB-INF/lib下
solin@solin:~/package$ cp /solr-5.0.0/server/lib/ext/*.jar /solr-5.0.0/webapps/WEB-INF/lib
6、编辑tomcat server.xml
solin@solin:~/package$ vim tomcat 8.0.20/config/server.xml
<Context path="/solr" docBase="/solr-5.0.0/server/webapps" reloadable="true" crossContext="true"/>
7、到此配置完成,重启tomcat
solin@solin:~/package$ cd tomcat 8.0.20/bin/
solin@solin:~/package$ ./startup.sh
8、浏览器访问http://localhost:8080/solr进入solr管理页面
三、solr将数据库做成索引数据源(mysql),solr5.0默认创建了datainport
1、修改数据源solr-data-config.xml(solr-5.0.0/example/example-DIH/solr/solr/conf/)
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/lingcai"
user="root"
password="123456"/>
<document name="article">
<entity name="article" query="select id,title,content,createtime from tab_article" transformer="ClobTransformer">
<field column="id" name="id" />
<field column="title" name="title" />
<field column="content" name="conten" />
<field column="createtime" name="createtime" />
</entity>
</document>
</dataConfig>
2、将mysql驱动包放入/solr-5.0.0/webapps/WEB-INF/lib下
附件下载
3、配置完成,创建索引:http://localhost:8080/solr/dataimport?command=full-import
4、查看是否导入成功:http://localhost:8080/solr/#/solr/query
四、配置IK中文分词
1、下载ik包,见附件
2、将ik包放入/solr-5.0.0/webapps/WEB-INF/lib下
3、编辑schema.xml文件,在文件中添加如下代码:
<!--filed-->
<field name="ik" type="text_ik" indexed="true" stored="true" multiValued="false" />
<!--filedType-->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
4、重启tomcat
5、配置完成,进行测试:http://localhost:8080/solr/#/solr/analysis
五、solr索引数据备份
1、备份solr数据文件分为两种方式:冷备份和热备份
所谓冷备份就是指关闭solr,然后将SOLR_HOME/data下面的所有数据拷贝到一个安全的位置。这种方法简单,可靠,index数据文件不会产生不一致。但是缺点很明显,就是系统要关闭,如果数据量大的话,整个复制过程会比较长。
热备份方法比较实用,也就是利用Solr Replication Handler!Replication Handler的主要作用是在一个load-balancing的solr部署架构中,将index数据复制到各个slave服务器上。但是,即使在没有任何slave服务器的情况下,Replication Handler也可以用来在主服务器上创建index的副本。
2、配置solrconfing.xml(Replication Handler)
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<str name="replicateAfter">commit</str>
<str name="replicateAfter">startup</str>
<str name="confFiles">schema.xml,stopwords.txt</str>
</lst>
<lst name="slave">
<str name="masterUrl">http://localhost:8088/solr/solr/replication</str>
<str name="pollInterval">00:00:60</str>
</lst>
</requestHandler>
3、重启系统,执行备份
<!--默认备份到solr/data下,文件类似snapshot.20131127105721594的目录,这目录就是备份出来的索引库-->
http://localhost:8080/solr/replication?command=backup
<!--&location=/home/solin/document/solr/solr_bak,location代表指定备份地址-->
http://localhost:8088/solr/replication?command=backup&location=/home/solin/document/solr/solr_bak
4、solr索引恢复步骤
(1)停止solr服务器
(2)复制备份的索引到solr/data/index下
(3)重启solr服务器
六、solr实现竞价排名
1、配置solrconfig.xml
<searchComponent name="elevator" class="solr.QueryElevationComponent" >
<!-- pick a fieldType to analyze queries -->
<str name="queryFieldType">string</str>
<str name="config-file">elevate.xml</str>
</searchComponent>
<!-- A request handler for demonstrating the elevator component -->
<requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="df">text</str>
</lst>
<arr name="last-components">
<str>elevator</str>
</arr>
</requestHandler>
2、配置elevate.xml
<elevate>
<!--text为查询关键字-->
<query text="测试">
<!--id为竞价名次,配置越靠前搜索的排名越靠前-->
<doc id="7141"/>
<doc id="6916"/>
<doc id="6912"/>
</query>
</elevate>
3、重启后,访问http://localhost:8088/solr/solr/elevate?q=测试&wt=json&indent=true |
|
|