部署上一篇的博客提到的自定义分词器有2种办法。
IK+二元合并自定义分词
方法1
直接不修改代码编译,在schema.xml中添加如下部署如下声明
<fieldType name="text_iknorms" class="包名.类名">
<analyzer class="包名.类名"/>
</fieldType>
方法2
在schema.xml中部署1层tokenizer+2层filter
<fieldType name="text_iknorms" class="包名.类名">
<tokenizer class="包名.类名"/>
<filter class="包名.类名"/>
<filter class="包名.类名"/>
</fieldType>
部署过程中报错,如题所示。其实不是没有什么init方法,而是缺少构造方法。在eclipse中快速添加TokenizerFactory抽象类中的构造方法的同时会默认把构造方法修饰成protected,所以solr无法访问到。一点点小错误折腾了一下午。
以及,tomcat5.5版本可能会影响solr部署。tomcat6.0没有问题。solr及lucene版本都是4.10