es 使用ik停词_elasticsearch 7.6 在 IK分词 中使用 同义词

关于es7.6同义词的内容真的好难找…………

现在简单记录一下实现过程

1、安装同义词插件

插件下载传送,其他的同义词插件未测试

2、插件使用mvn打包(最新版master没有打包), 使用maven编译插件

打包提示需要修改 elasticsearch-analysis-dynamic-synonym-master 文件下的 pom.xml文件,

把版本改为自己es对应的版本号,然后进行打包操作

3、按照打包处理,然后把 elasticsearch-analysis-dynamic-synonym-masterargeteleases 的文件 解压 添加到  elasticsearch/plugins/synonym   文件夹synonym 自己新建

4、添加同义词词库

在 es 的 config 新建 analysis 文件夹,新建 synonyms.txt 文件(文件名自己定只要统一就可以), 一定要是UTF-8格式。 有几种格式自己选择

synonyms.txt文件测试词

西红柿,番茄=>圣女果

哪儿,在哪,何处,什么地方=>哪里

状况,情况=>状态

注解,注释=>备注

universe,cosmos

5、启动es(如果已经启动,需要重启,否则不能加载同义词词典)

6、重新设置分词器

1)关闭所有索引    通过 (postman、curl)post 请求  localhost:9200/_all/_close

2)设置索引 通过 (postman、curl)使用put请求

接口地址:

http://localhost:9200/_all/_settings?preserve_existing=true

参数:

{

"index.analysis.analyzer.ik_syno_max_word.filter" : [

"my_synonym_filter"

],

"index.analysis.analyzer.ik_syno_max_word.tokenizer" : "ik_max_word",

"index.analysis.analyzer.ik_syno_max_word.type" : "custom",

"index.analysis.analyzer.ik_syno_smart.filter" : [

"my_synonym_filter"

],

"index.analysis.analyzer.ik_syno_smart.tokenizer" : "ik_smart",

"index.analysis.analyzer.ik_syno_smart.type" : "custom",

"index.analysis.filter.my_synonym_filter.synonyms_path" : "analysis/synonyms.txt",

"index.analysis.filter.my_synonym_filter.type" : "synonym"

}

返回值

{

"acknowledged": true

}

3)重新打开所有索引, 通过 (postman、curl)使用 post请求

localhost:9200/_all/_open

返回值:

{

"acknowledged": true,

"shards_acknowledged": true

}

7、测试同义词

接口地址:

http://localhost:9200/_index/_analyze     _index 为自己使用了同义词的 mapping

参数:

{

"analyzer": "ik_syno_smart",

"text": "cosmos"

}

返回值:

{

"tokens": [

{

"token": "cosmos",

"start_offset": 0,

"end_offset": 6,

"type": "ENGLISH",

"position": 0

},

{

"token": "universe",

"start_offset": 0,

"end_offset": 6,

"type": "SYNONYM",

"position": 0

}

]

}

以上,完结。


版权声明:本文为weixin_39986178原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。