ES热词更新配置

网络词语日新月异,如何让新出的网络热词(或特定的词语)实时的更新到我们的搜索当中呢
先用 ik 测试一下 :
[html] view plain copy
curl -XGET ‘http://localhost:9200/_analyze?pretty&analyzer=ik_max_word’ -d ’
成龙原名陈港生

#返回
{
“tokens” : [ {
“token” : “成龙”,
“start_offset” : 1,
“end_offset” : 3,
“type” : “CN_WORD”,
“position” : 0
}, {
“token” : “原名”,
“start_offset” : 3,
“end_offset” : 5,
“type” : “CN_WORD”,
“position” : 1
}, {
“token” : “陈”,
“start_offset” : 5,
“end_offset” : 6,
“type” : “CN_CHAR”,
“position” : 2
}, {
“token” : “港”,
“start_offset” : 6,
“end_offset” : 7,
“type” : “CN_WORD”,
“position” : 3
}, {
“token” : “生”,
“start_offset” : 7,
“end_offset” : 8,
“type” : “CN_CHAR”,
“position” : 4
} ]
}
ik 的主词典中没有”陈港生” 这个词,所以被拆分了。
现在我们来配置一下
修改 IK 的配置文件 :ES 目录/plugins/ik/config/ik/IKAnalyzer.cfg.xml
修改如下:

[html] view plain copy

<?xml version="1.0" encoding="UTF-8"?> IK Analyzer 扩展配置 custom/mydict.dic;custom/single_word_low_freq.dic custom/ext_stopword.dic http://192.168.5.91:8600/es/dic/loadExtDict 这里我是用的是远程扩展字典,因为可以使用其他程序调用更新,且不用重启 ES,很方便;使用本地的文件进行词库扩展,需要重启ES。当然使用自定义的 mydict.dic 字典也是很方便的,一行一个词,自己加就可以了 既然是远程词典,那么就要是一个可访问的链接,可以是一个页面,也可以是一个txt的文档,但要保证输出的内容是 utf-8 的格式 ik 接收两个返回的头部属性 Last-Modified 和 ETag,只要其中一个有变化,就会触发更新,ik 会每分钟获取一次 重启 Elasticsearch ,查看启动记录,看到了三个词已被加载进来 [html] view plain copy [2016-10-31 15:08:57,749][INFO ][ik-analyzer ] 陈港生 [2016-10-31 15:08:57,749][INFO ][ik-analyzer ] 元楼 [2016-10-31 15:08:57,749][INFO ][ik-analyzer ] 蓝瘦 现在我们来测试一下,再次执行上面的请求,返回

[html] view plain copy

}, {
“token” : “陈港生”,
“start_offset” : 5,
“end_offset” : 8,
“type” : “CN_WORD”,
“position” : 2
}, {

可以看到 ik 分词器已经匹配到了 “陈港生” 这个词

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值