@tenlee
2020-10-30T08:47:47.000000Z
字数 2527
阅读 965
未分类
方法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. 不过,从图形看,三房巷形成一个极小的上升三角形,最多涨到下周三,涨幅不超百分之七
可自行对比测试。