solr添加IKAnalyzer分词器

最近在学习solr时候,碰到一个问题,就是如果采用默认的分词器,会将每个字都分割成一个词组进行索引

比如:长沙市  会被分词为   “长”,“沙”,“市”,这样就达不到我想要的效果

    例如:

        

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

   这个是默认的分词器

    

 <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>	  
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>
    我对城市名称进行索引

    结果:

    


      对每个字都进行了分词

  所以这里我们需要手动加入分词功能,我这里采用的IKAnalyzer,这里分词,会进行词组分词      “长沙”,“市”  这样

      在schema.xml文件中加入   

    <fieldType name="text_ik" class="solr.TextField">     
          <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>     
    </fieldType>  
   
 <field name="name" type="text_ik" indexed="true" stored="true"/>

然后重启

   
   

   这样效果就达到了,这里和lucene的差不多滴!




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值