Solr学习总结(四)ik分词配置

下载地址:
http://files.cnblogs.com/files/zhangweizhong/ikanalyzer-solr5.zip

1.将ik的jar包copy到 solr/WEB-INF/lib 下

2.在solr_home/mydatacore/conf/managed-schema 文件中增加如下配置

<fieldType name="text_ik" class="solr.TextField">   
                   <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
                   <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
         </fieldType>

3.同时,把需要分词的字段,设置为text_ik,便于搜索

<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="name" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="title" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="category" type="int" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="content" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="price" type="double" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="color" type="string" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="orderBy" type="int" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="updatetime" type="date" indexed="true" stored="true" required="true" multiValued="false" />

4.配置IKAnalyzer分词器的扩展词典,停止词词典,将 文件夹下的IKAnalyzer.cfg.xml , ext.dic和stopword.dic 三个文件 复制到/webapps/solr/WEB-INF/classes 目录下,并修改IKAnalyzer.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
    <properties>  
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典 -->
        <entry key="ext_dict">ext.dic;</entry> 

        <!--用户可以在这里配置自己的扩展停止词字典-->
        <entry key="ext_stopwords">stopword.dic;</entry> 
    </properties>

5.重启服务
注意:如果之前已经创建索引,需要将之前的索引删掉,重新创建分词后的索引

6.solr联合多个字段进行检索(multivalued和copyfield的使用)
在managed-schema文件中将需要检索的字段,使用copyField拷贝到一个新的searchText的field中,并设置这个searchText field的multivalue属性为true即可。

  <field name="query_field" type="text_ik" indexed="true" stored="false" multiValued="true"/>
  <copyField source="industryField" dest="query_field"/>
  <copyField source="companyName" dest="query_field"/>
  <copyField source="city" dest="query_field"/>
  <copyField source="category" dest="query_field"/>
 <requestHandler name="/select" class="solr.SearchHandler">
    <!-- default values for query parameters can be specified, these
         will be overridden by parameters in the request
      -->
    <lst name="defaults">
      <str name="echoParams">explicit</str>
      <int name="rows">10</int>
      <!-- Default search field
      设置查询字段,默认是text,修改成query_field
         <str name="df">text</str> 
         <str name="query_field"</str>
        -->
      <!-- Change from JSON to XML format (the default prior to Solr 7.0)
         <str name="wt">xml</str> 
        -->
    </lst>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值