Solr搭建及分词器配置

准备tomcat压缩包和solr压缩包

解压出来后

  1. 将 solr 压缩包中 solr-5.3.0\server\solr-webapp\文件夹下有个webapp文件夹,将之复制到Tomcat\webapps\目录下,文件夹名改成solr ; 
    3、将 solr 压缩包中 solr-5.3.0\server\lib\ext 中的 jar 全部复制到 Tomcat\ webapps\solr\WEB-INF\lib 目录中; 
    4、将 solr 压缩包中 solr-5.3.0/ server/resources /log4j.properties 复制到

在Tomcat\ webapps\solr\WEB-INF下创建classes然后把log4j.properties 放到classes目录中; 

在把solr/server/lib下metrics开头的5个jar拷到tomcat\webapps\solr\WEB-INF\lib下

将solr-5.3.0/dist中的solr-dataimporthandler、solr-dataimporthandler-extras的jar包复制到tomcat\webapps\solr\WEB-INF\lib下; 

.去掉权限,tomcat 里的 solr下的web.xml ,在最下面

 

5、将 solr 压缩包中 solr-5.3.0/server/solr 目录复制到计算机某个目录下,如D:\solr-home(solr创建的core到时会存放在该目录下); 

6、打开Tomcat/webapps/solr/WEB-INF下的web.xml,找到如下配置内容(初始状态下该内容是被注释掉的):(注意斜杠)

 

启动Tomact 

8、在D:\testsolr\solr_home下创建my_core文件夹(名称与下图的instanceDir一致,建议下图中的name也和该文件夹名一致);

 

9、在my_core文件夹下创建data和conf文件夹; 


10、将solr-5.3.0\example\example-DIH\solr\solr\conf所有文件和文件夹都copy到D:\testsolr\solr_home\my_core\conf下; 

 

 

添加分词器配置

在conf文件下,把managed-schema复制一份然后,修改成schema.Xml

在群里下载mmseg4j 压缩包

  1. 将文件里的jar包拷贝到Tomcat\webapps\solr\WEB-INF\lib下; 
    2、在 D:\testsolr\solr_home\solr\ 目录下新建一个 dic 文件夹 , 把mmseg4j 压缩包里(data文件夹下)拷贝到 dic 目录下; 
    3、在 D:\testsolr\solr_home\solr\my_core\conf\schema.xml 文件的里添加如下:

 

<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="D:/testsolr/solr_home/solr/dic"> </tokenizer> </analyzer> </fieldtype> <fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="maxword" dicPath="D:/testsolr/solr_home/solr/dic"> </tokenizer> </analyzer> </fieldtype> <fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="D:/testsolr/solr_home/solr/dic"> </tokenizer> </analyzer> </fieldtype>

 

<field name="name" type="textMaxWord" indexed="true" stored="true" multiValued="true" /> <field name="description" type="textMaxWord" indexed="true" stored="true" multiValued="true" />

 

连接数据库

首先将mysql 相关jar包 mysql-connector-java-5.1.30.jar 引入Tomcat\webapps\solr\WEB-INF\lib

  在MySql数据库中新建一张表。我这里用的是Navicat管理工具进行创建的。这里的表名是goods。字段如下图所示:

 

在solr-home\my_core\conf下的solrconfig.xml的  <requestHandler name="/select" class="solr.SearchHandler">之上添加

 

 

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">  

<lst name="defaults">  

<str name="config">data-config.xml</str>  

</lst>  

</requestHandler>  

 

然后在conf下新建data-config.xml文件。里面内容如下:

 

<?xml version="1.0" encoding="UTF-8"?>

<dataConfig>  

<dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solrdata" user="root" password="220316" batchSize="-1" />  

<document>

<entity name="goods" pk="id"  dataSource="source1"   

query="select * from  goods"  

                 deltaImportQuery="select * from goods where id='${dih.delta.id}'"  

                deltaQuery="select id from goods where updateTime> '${dataimporter.last_index_time}'">  

 

      <field column="id" name="id"/>  

     <field column="name" name="name"/>  

            <field column="number" name="number"/>  

            <field column="updateTime" name="updateTime"/>  

  </entity>  

</document>  

</dataConfig> 

 

在conf文件下schema.Xml添加field信息:

 

<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />  

<field name="name" type="string" indexed="true" stored="false"/>  

<field name="number" type="int" indexed="true" stored="false"/>  

<field name="updateTime" type="date" indexed="true" stored="true" />  

   <field name="_version_" type="long" indexed="true" stored="false"/>  

   <field name="_root_" type="string" indexed="true" stored="false" docValues="false" />  

   <field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>  

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值