Closed GoogleCodeExporter closed 9 years ago
在http://code.google.com/p/ik-analyzer/issues/detail?id=54&can=1提到过,IKA nalyzer 2012 u4下web application中不能加载扩展词库的问题。经过与作者联系,得知 需要将IKAnalyzer.cfg.xml和词库文件都拷贝到tomcat\lib目录下才行� �� 由于想找到问题根源,目前SVN中的代码不知道是哪个版本的�� �所以用反编译代码将代码加入到自己的程序中一个个单步跟� ��,最后彻底整明白了。 2012u4版本加载扩展词库配置文件(即Configuration的构造函数中� ��时,使用的是这个代码: InputStream input = getClass().getClassLoader().getResourceAsStream("IKAnalyzer.cfg.xml"); 而对于web容器,Servlet的getClass().getClassLoader()方法获得的是容� ��本身的classpath路径,如tomcat是Tomcat安装目录下的lib目录。 我把IKAnalyzer.cfg.xml和dic文件都拷贝到tomcat/lib下就好了。但这� ��方法相当奇怪,太过于依赖Tomcat。IK设计初衷的解耦,反而� ��使用起来耦合度更高。 而且,在Servlet容器中使用需要拷贝这些文件到Servlet对应的lib 目录中,而在Spring容器使用时,又需要拷贝到spring容器对应�� �目录中(虽然就是classes目录下),进一步加强了耦合度。 目前svn中的代码,这段代码是: private static final String FILE_NAME = "/IKAnalyzer.cfg.xml"; InputStream input = Configuration.class.getResourceAsStream(FILE_NAME); 我倒觉得这个方法比较靠谱,经过测试,能取到web站点下WEB-I NF/classes和Java Application下的扩展词库配置文件。 希望在下一个版本能好好测试一下扩展词库的路径问题。也�� �IK越来越完善,替代ICTCLAS成为中文分词的最强者。
Original issue reported on code.google.com by fz...@163.com on 2 May 2012 at 9:01
fz...@163.com
Original comment by linliang...@gmail.com on 8 May 2012 at 2:55
linliang...@gmail.com
Original issue reported on code.google.com by
fz...@163.com
on 2 May 2012 at 9:01