怎么安装elasticsearch中文分词插件Synonym-Analysis
这篇文章主要介绍"怎么安装elasticsearch中文分词插件Synonym-Analysis",在日常操作中,相信很多人在怎么安装elasticsearch中文分词插件Synonym-Analysis问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么安装elasticsearch中文分词插件Synonym-Analysis"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
elasticsearch 版本 7.3
安装同义词插件
插件对应的版本需要和elasticsearch的版本一致
插件下载地址
https://github.com/bells/elasticsearch-analysis-dynamic-synonym
安装步骤如下:
在elasticsearch-7.3.0/plugins目录下新建 analysis-dynamic-synonym文件夹
如果是最新版master需要使用maven编译后将jar放入刚刚建好的文件夹中,如果是其他已经编译好的版本直接复制放入即可,本例需要编译的版本
同时加入plugin-descriptor.properties 和 plugin-security.policy,内容详见下文
重启集群
远程同义词库同样是根据http header 中的 Last-Modified 和 ETag 判断是否需要更新,具体可以参考我的另一篇博客方法是一样的elasticsearch 中文分词插件IK-Analyze
编译后仅得到一个jar包,其实elasticsearch安装插件还需要配置文件plugin-descriptor.properties,没有此文件会报错,文件内容如下
description=Analysis-plugin for synonymversion=5.1.1name=analysis-dynamic-synonymclassname=com.bellszhu.elasticsearch.plugin.DynamicSynonymPluginjava.version=1.8elasticsearch.version=7.3.0
还需要放入配置文件 plugin-security.policy
grant { // needed because of the hot reload functionality permission java.net.SocketPermission "*", "connect,resolve";};
如果elasticsearch报错提示
failed to get synonyms : http://10.0.11.1:10002/elasticsearch/synonymDict
access denied ("java.net.SocketPermission" "10.0.11.1:10002" "connect,resolve")
原因是缺少plugin-security.policy文件
commons httpclient 这些jar可以下载一个低版本的插件从中获取
插件所有文件如下:
测试同义词插件
创建一个索引,指定远程同义词库
PUT /full_text_test123{ "settings": { "index": { "analysis": { "analyzer": { "ik_syno_smart": { "tokenizer": "ik_max_word", "type": "custom", "filter": [ "remote_synonym" ] } }, "filter": { "remote_synonym": { "type": "dynamic_synonym", "synonyms_path": "http://10.0.11.1:10002/elasticsearch/synonymDict", "interval": 30 } } } } }, "mappings": { "properties": { "content": { "type": "text", "analyzer": "ik_syno_smart", "search_analyzer": "ik_smart" } } }}
添加同义词
执行解析器
POST /full_text_test123/_analyze{ "text": ["西红柿"], "analyzer": "ik_syno_smart"}
结果
{ "tokens" : [ { "token" : "西红柿", "start_offset" : 0, "end_offset" : 3, "type" : "CN_WORD", "position" : 0 }, { "token" : "番茄", "start_offset" : 0, "end_offset" : 3, "type" : "SYNONYM", "position" : 0 } ]}
到此,关于"怎么安装elasticsearch中文分词插件Synonym-Analysis"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!