solr4.4.0集成carrot2支持中文和添加自己的中文分词器的方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了solr4.4.0集成carrot2支持中文和添加自己的中文分词器的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1498字,纯文字阅读大概需要3分钟。
内容图文
![solr4.4.0集成carrot2支持中文和添加自己的中文分词器的方法](/upload/InfoBanner/zyjiaocheng/531/fe9c58ecbea54e87acdd8cf6bc26943d.jpg)
默认 carrot2中是支持中文的,但是需要一个参数进行指定 carrot.lang= CHINESE_SIMPLIFIED carrot2支持的语言可以参考http://doc.carrot2.org/#div.attribute.lingo.MultilingualClustering.defaultLanguage 但是默认, carrot2使用的分词类是org.apache.luc
默认 carrot2中是支持中文的,但是需要一个参数进行指定
carrot.lang=CHINESE_SIMPLIFIED
carrot2支持的语言可以参考http://doc.carrot2.org/#div.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等等,把上述源码替换成相应的类即可。
内容总结
以上是互联网集市为您收集整理的solr4.4.0集成carrot2支持中文和添加自己的中文分词器的方法全部内容,希望文章能够帮你解决solr4.4.0集成carrot2支持中文和添加自己的中文分词器的方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。