elasticsearch7.6在IK分词中使用同义词
关于es7.6同义词的内容真的好难找…………
现在简单记录一下实现过程
es同义词官方文档传送
1、安装同义词插件
插件下载传送,其他的同义词插件未测试
2、插件使用mvn打包(最新版master没有打包), 使用maven编译插件
打包提示 需要修改 elasticsearch-analysis-dynamic-synonym-master 文件下的 pom.xml文件,
把版本改为自己es对应的版本号,然后进行打包操作
打包操作参考传送
3、按照打包处理,然后把 elasticsearch-analysis-dynamic-synonym-master argeteleases 的文件 解压 添加到 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
}
]
}
以上,完结。
以上是 elasticsearch7.6在IK分词中使用同义词 的全部内容, 来源链接: utcz.com/z/519171.html