[关闭]
@tenlee 2020-10-30T08:47:47.000000Z 字数 2527 阅读 972

es分词插件使用

未分类


使用

安装

方法1. bin/elasticsearch-plugin install file:///Users/xiaoming/Download/analysis-hupu.zip
方法2. 解压后,放在es plugins目录即可。

自定义分词器

下面是自定义分词器可用的配置项


配置项参数 功能 默认值
enableIndexMode 是否使用index模式,index模式为细颗粒度。 hupu_search_modefalsehupu_index_modetrue,细颗粒度适合Term Query,粗颗粒度适合Phrase查询
enableOOV 是否使用算法模型预测分词 默认false
enableFallBack 如果分词报错,是否启动最细粒度分词,即按字分。建议search_mode使用,不至于影响用户搜索。index_mode不启动,以便及时报错告警通知。 false不启动降级
enableFailDingMsg 是否启动失败钉钉通知,通知地址为HttpAnalyzer.cfg.xmldingWebHookUrl字段。 false
enableSingleWord 是否使用细粒度返回的单字。比如体力值,分词结果只存体力值,体力,而不存 false

HupuAnalyzer.cfg.xml 配置


参数 功能 备注
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目录下的文件

示例索引demo

建索引:

  1. PUT test/
  2. {
  3. "settings": {
  4. "index": {
  5. "analysis": {
  6. "analyzer": {
  7. "search_analyzer": {
  8. "filter": [
  9. "lowercase"
  10. ],
  11. "char_filter": [
  12. "html_strip"
  13. ],
  14. "type": "custom",
  15. "tokenizer": "my_search_token"
  16. },
  17. "title_analyzer": {
  18. "filter": [
  19. "lowercase"
  20. ],
  21. "char_filter": [
  22. "html_strip"
  23. ],
  24. "type": "custom",
  25. "tokenizer": "my_title_index_token"
  26. }
  27. },
  28. "tokenizer": {
  29. "my_title_index_token": {
  30. "enableOOV": "false",
  31. "enableFailDingMsg": "true",
  32. "type": "hupu_index_mode",
  33. "enableSingleWord": "true",
  34. "enableFallBack": "true"
  35. },
  36. "my_search_token": {
  37. "enableOOV": "false",
  38. "enableFailDingMsg": "true",
  39. "type": "hupu_search_mode",
  40. "enableSingleWord": "true",
  41. "enableFallBack": "true"
  42. }
  43. }
  44. },
  45. "number_of_replicas": "0"
  46. }
  47. },
  48. "mappings": {
  49. "properties": {
  50. "title": {
  51. "type": "text",
  52. "index_options": "offsets",
  53. "analyzer": "title_analyzer",
  54. "search_analyzer": "search_analyzer"
  55. }
  56. }
  57. }
  58. }

测试分词

  1. test/_analyze
  2. {
  3. "analyzer": "title_analyzer",
  4. "text": "奋发图强打篮球有利于提高人民生活,有的放矢,中华人民共和国家庭宣传委员会宣。🐶"
  5. }
  6. test/_analyze
  7. {
  8. "analyzer": "search_analyzer",
  9. "text": "奋发图强打篮球有利于提高人民生活,有的放矢,中华人民共和国家庭宣传委员会宣。🐶"
  10. }

性能测试

配置:1.4 GHz 四核Intel Core i5
单线程每秒166w字(不开启模型预测的情况下,开启模型预测就很慢了)

和IK对比

示例文本:
1. 任性冲动过,幻想时光会倒流
2. 不过,从图形看,三房巷形成一个极小的上升三角形,最多涨到下周三,涨幅不超百分之七

可自行对比测试。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注