问题
ElasticSearch安装IK分词器后,写了一个自己的自定义分词
但是配置之后使用
GET _analyze
{
"analyzer": "ik_max_word",
"text": "超级挖槽"
}
结果
{
"tokens" : [
{
"token" : "超级",
"start_offset" : 0,
"end_offset" : 2,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : "挖",
"start_offset" : 2,
"end_offset" : 3,
"type" : "CN_CHAR",
"position" : 1
},
{
"token" : "槽",
"start_offset" : 3,
"end_offset" : 4,
"type" : "CN_CHAR",
"position" : 2
}
]
}
查看控制台,my.dic也确实加载了。
但就是并没有起作用。来回重启了好几次也没有解决问题,网上查了也没有解决,就反复试。
原因
我是直接右键新建文本文档,然后将文件名修改为my.dic。这个就可能出现编码问题
使用notepad++打开后发现果然,编码为ANSI
然后使用notepad++打开config里面写好的main.dic查看应该的编码为UTF-8-BOM
然后只需要,修改自定义分词文件的编码为UTF-8-BOM就可以解决问题
{
"tokens" : [
{
"token" : "超级",
"start_offset" : 0,
"end_offset" : 2,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : "挖槽",
"start_offset" : 2,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 1
}
]
}