@tenlee
2020-10-30T08:47:47.000000Z
字数 2527
阅读 1215
未分类
方法1. bin/elasticsearch-plugin install file:///Users/xiaoming/Download/analysis-hupu.zip
方法2. 解压后,放在es plugins目录即可。
下面是自定义分词器可用的配置项
| 配置项参数 | 功能 | 默认值 |
|---|---|---|
enableIndexMode |
是否使用index模式,index模式为细颗粒度。 | hupu_search_mode为false,hupu_index_mode为true,细颗粒度适合Term Query,粗颗粒度适合Phrase查询 |
enableOOV |
是否使用算法模型预测分词 | 默认false |
enableFallBack |
如果分词报错,是否启动最细粒度分词,即按字分。建议search_mode使用,不至于影响用户搜索。index_mode不启动,以便及时报错告警通知。 |
false不启动降级 |
enableFailDingMsg |
是否启动失败钉钉通知,通知地址为HttpAnalyzer.cfg.xml的dingWebHookUrl字段。 |
false |
enableSingleWord |
是否使用细粒度返回的单字。比如体力值,分词结果只存体力值,体力,而不存值 |
false |
| 参数 | 功能 | 备注 |
|---|---|---|
| modelDir | 算法模型文件夹 | 不用更改 |
| freqFile | 基础词库文件名 | 放在插件config目录或者es的config目录,不用更改 |
| tagWordFile | 标签词库文件名 | 放在插件config目录或者es的config目录,作为基础词库文件的补充,不用更改 |
| customerDictionaryFile | 用户自定义远程词库文件 | 会存储在插件config目录或者es的config目录 |
| remoteFreqDict | 远程用户自定义词库文件 | 方便热更新,热更新通过下面两个参数定时更新。 |
| syncDicTime | 远程词库第一次同步时间 hh:mm:ss | - |
| syncDicPeriodTime | 远程词库同步时间间隔,秒 | 比如 syncDicTime=20:00:00,syncDicPeriodTime=86400,则是每天20点同步 |
| dingWebHookUrl | 钉钉机器人url | 用于分词异常,同步词库异常/成功通知 |
| dingMsgContent | 机器人通知文案 | 注意配置钉钉机器人的时候关键词要和这个文案匹配,不然会消息发送失败 |
优先读取
{ES_HOME}/config/analysis-hupu/目录,没有读取{ES_HOME}/plugins/analysis-hupu/config目录下的文件
freq.json,是一个json文件,key为词,value为词频(int)。是可以修改的,可以添加词,可以修改词频。 奋发图强 分词结果是 奋, 发图, 强, 是因为发图这个词的词频太高了(因为出现次数高),则可以降低词频,手动修改freq.json文件就好了。customerDictionaryFile。 {词},{词频},{是否元词}, 例如俄罗斯,1000,1。 1代表是元词,不会再细拆分,俄罗斯不会再拆分成俄和罗斯(罗斯是常用人名)。这样搜罗斯就不会把俄罗斯相关文档召回。 0就是可以继续细拆分,比如请给我一个冰淇淋建索引:
PUT test/{"settings": {"index": {"analysis": {"analyzer": {"search_analyzer": {"filter": ["lowercase"],"char_filter": ["html_strip"],"type": "custom","tokenizer": "my_search_token"},"title_analyzer": {"filter": ["lowercase"],"char_filter": ["html_strip"],"type": "custom","tokenizer": "my_title_index_token"}},"tokenizer": {"my_title_index_token": {"enableOOV": "false","enableFailDingMsg": "true","type": "hupu_index_mode","enableSingleWord": "true","enableFallBack": "true"},"my_search_token": {"enableOOV": "false","enableFailDingMsg": "true","type": "hupu_search_mode","enableSingleWord": "true","enableFallBack": "true"}}},"number_of_replicas": "0"}},"mappings": {"properties": {"title": {"type": "text","index_options": "offsets","analyzer": "title_analyzer","search_analyzer": "search_analyzer"}}}}
测试分词
test/_analyze{"analyzer": "title_analyzer","text": "奋发图强打篮球有利于提高人民生活,有的放矢,中华人民共和国家庭宣传委员会宣。🐶"}test/_analyze{"analyzer": "search_analyzer","text": "奋发图强打篮球有利于提高人民生活,有的放矢,中华人民共和国家庭宣传委员会宣。🐶"}
配置:1.4 GHz 四核Intel Core i5
单线程每秒166w字(不开启模型预测的情况下,开启模型预测就很慢了)
示例文本:
1. 任性冲动过,幻想时光会倒流
2. 不过,从图形看,三房巷形成一个极小的上升三角形,最多涨到下周三,涨幅不超百分之七
可自行对比测试。