solr4.4.0 集成 carrot2 支持中文和添加自己的中文分词器的方法。

默认 carrot2中是支持中文的,但是需要一个参数进行指定

          carrot.lang=CHINESE_SIMPLIFIED 

carrot2支持的语言可以参考http://doc.carrot2.org/#section.attribute.lingo.MultilingualClustering.defaultLanguage


但是默认,carrot2使用的分词类是 org.apache.lucene.analysis.cn.smart.SentenceTokenizer,这是看 carrot源代码找到的源码如下(在org.apache.solr.handler.clustering.carrot2.LuceneCarrot2TokenizerFactory类中)

      private ChineseTokenizer() throws Exception {
        this.tempCharSequence = new MutableCharArray(new char[0]);


        // As Smart Chinese is not available during compile time,
        // we need to resort to reflection.
        final Class<?> tokenizerClass = ReflectionUtils.classForName(
            "org.apache.lucene.analysis.cn.smart.SentenceTokenizer", false);
        this.sentenceTokenizer = (Tokenizer) tokenizerClass.getConstructor(
            Reader.class).newInstance((Reader) null);
        this.tokenFilterClass = ReflectionUtils.classForName(
            "org.apache.lucene.analysis.cn.smart.WordTokenFilter", false);
      }

如果,没有这个类,carrot2默认就会使用一个 ExtendedWhitespaceTokenizer 使用空格进行切词,所以如果要使用carrot2自己的中文切词,需要加入  lucene-analyzers-smartcn-4.4.0.jar


当然也可以使用自己的分词包,比如IK等等,把上述源码替换成相应的类即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值