在elasticsearch 的Java客户端使用IK分词器的问题解决

前提描述,关于如何在elasticsearch中使用IK分词器网上已经有很多资料了,这里不再叙述。下边主要说我遇到的问题和解决办法,以及将来大家可能也会遇到的问题。

        第一个问题:org.apache.http.client.ClientProtocolException类找不到异常,而且索引创建失败。

        开始我也很奇怪,一个分词器怎么会遇到httpclient的异常呢?在使用eclipse对elasticsearch-analysis-ik-1.2.8进行maven打包时,我查看了源码,原则作者为了可以从远程库中动态加入新的分词,就使用了httpclient来加载。然后查看了源码的pom.xml文件,发现这个分词器依赖:httpclient-4.3.5、httpcore-4.3.2、log4j-1.2.16、commons-logging-1.1.3、commons-codec-1.6几个jar包。于是,就将这几个jar包放在ES_HOMT/lib下,当前的问题解决了,而且可以用了。

        可是这个时候,系统服务端又报了一个错误:Caused by: org.apache.http.ProtocolException: Target host is not specified,于是查看了源码,原来IK分词器会从IKAnalyzer.cfg.xml配置文件的“remote_ext_dict”配置项来读取用户自己扩展的分词。由于默认情况下这个没有设置,所以在org.wltea.analyzer.dic.Monitor类中报了这个错误,但是分析了源码后赶紧这个的确不会影响到程序使用,可以不管。

        注意,我这里使用IK版本是1.2.8.



你可能感兴趣的:(elasticsearch,IK)