先到这里找一个合适的版本http://github.com/medcl/elasticsearch-analysis-ik/releases
ES的版本如果比较新可能没有对应的IK版本号 那可能需要降ES的版本号
进入ES容器
./bin/elasticsearch-plugin install http://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.7.0/elasticsearch-analysis-ik-8.7.0.zip
或者直接解压到 plugins/ik目录中
配置词库与停用词
/plugins/ik/config/IKAnalyzer.cfg.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 扩展配置</comment> <!--用户可以在这里配置自己的扩展字典 --> <entry key="ext_dict"></entry> <!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords"></entry> <!--用户可以在这里配置远程扩展字典 --> <entry key="remote_ext_dict">http://*/dict.txt</entry> <!--用户可以在这里配置远程扩展停止词字典--> <entry key="remote_ext_stopwords">http://*/dict_dis.txt</entry> </properties>
如果需要配置到数据库中,如果网上的教程太复杂,可以直接把上面配置文件中的url指向后台一个url 从数据库读出来输出文本就可以了。
如果要限制分词结果的长度,最少两个字一个词,可以修改源码
http://github.com/medcl/elasticsearch-analysis-ik.git
org.wltea.analyzer.core.AnalyzeContext 325行左右
if(Dictionary.getSingleton().isStopWord(this.segmentBuff , result.getBegin() , result.getLength())){
改成
if(result.getLength()<=1 || Dictionary.getSingleton().isStopWord(this.segmentBuff , result.getBegin() , result.getLength())){