Ubuntu14.04 solr5.0.0安装及配置IK中文分词

lhc0 2015-04-03

一、环境准备:

系统环境: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

相关推荐

lionelf / 0评论 2020-07-28