一、IK分词安装:
(1)下载对应版本的IK分词安装包,下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases,我的ES版本为5.5.0,所以下载IK:
(2)在ES集群的plugins目录下新建ik文件夹:
(3)将IK的ZIP上传到新建的ik文件夹下,用unzip ***.zip 解压这个zip文件,并且将这个zip包上传到ES集群中的其他节点上,在ES集群中的其他节点上执行相同的操作。解压后有以下一些文件:
(4)重启ES集群即可:
查看ES集群日志,看到IK已经被加载了。
二、建立IK映射
IK分词器被加载后,在创建索引时,需要指定IK映射才能使用IK进行全文检索,
比如:
private static XContentBuilder createIKMapping() {
XContentBuilder mapping = null;
try {
mapping = XContentFactory.jsonBuilder()
.startObject()
.startObject("properties")
.startObject("INSURANCENO").field("type", "text")
.field("analyzer","ik_max_word").endObject()
.field("analyzer","ik_max_word").endObject()
.endObject()
.endObject();
} catch (IOException e) {
e.printStackTrace();
}
return mapping;
}
然后调用IK Mapping就行:
public static void createBangMapping(){
PutMappingRequest mapping = Requests.putMappingRequest(INDEX).type(TYPE).source(IKTest.createIKMapping());
client.admin().indices().putMapping(mapping).actionGet();
}
这里有一个疑问:在字段是不知道的前提下怎么去建立IK映射呢?