Dynamic-Synonym 是 ElasticSearch 动态更新同义词插件 。主要提供了动态更新同义词的功能,支持本地文件和远程文件。
安装
1.
mvn package
2. 将target/releases/elasticsearch-analysis-dynamic-synonym-{version}.zip
解压到 your-es-root/plugins/dynamic-synonym
示例代码:
{ "index" : { "analysis" : { "analyzer" : { "synonym" : { "tokenizer" : "whitespace", "filter" : ["synonym"] } }, "filter" : { "remote_synonym" : { "type" : "dynamic_synonym", "synonyms_path" : "http://host:port/synonym.txt", "interval": 30 }, "local_synonym" : { "type" : "dynamic_synonym", "synonyms_path" : "synonym.txt" }, } } } }
说明:synonyms_path
是必须要配置的,根据它的值是否是以http://
开头来判断是本地文件,还是远程文件。
interval
非必须配置的,默认值是60,单位秒,表示间隔多少秒去检查同义词文件是否有更新。ignore_case
非必须配置的, 默认值是falseexpand
非必须配置的, 默认值是trueformat
非必须配置的, 默认值是空字符串, 如果为wordnet,则表示WordNet结构的同义词。
热更新同义词说明
-
对于本地文件:主要通过文件的修改时间戳(Modify time)来判断是否要重新加载。
-
对于远程文件:
synonyms_path
是指一个url。 这个http请求需要返回两个头部,一个是Last-Modified
,一个是ETag
,只要有一个发生变化,该插件就会去获取新的同义词来更新相应的同义词。
注意: 不管是本地文件,还是远程文件,编码都要求是UTF-8的文本文件
未经允许不得转载:Linux学习笔记 » ElasticSearch动态更新同义词插件 Dynamic-Synonym