一个简易的Elasticsearch动态同义词插件
Elasticsearch自带了一个synonym同义词插件,但是该插件只能使用文件或在分析器中静态地配置同义词,如果需要添加或修改,需要修改配置文件和重启,使用方式不够友好。通过学习Elasticsearch的synonym代码,自研了一个可动态维护同义词的插件,并以运用于生产环境,供大家参考。
Elasticsearch自带的SynonymTokenFilter
Elasticsearch自带的同义词过滤器支持在分析器配置(使用synonyms参数)和文件中配置(使用synonyms_path参数)同义词,配置方式如下:
{
"index" : {
"analysis" : {
"analyzer" : {
"synonym_analyzer" : {
"tokenizer" : "whitespace",
"filter" : ["my_synonym"]
}
},
"filter" : {
"my_synonym" : {
"type" : "synonym",
"expand": true,
"ignore_case": true,
"synonyms_path" : "analysis/synonym.txt"
"synonyms" : ["阿迪, 阿迪达斯, adidasi => Adidas","Nike, 耐克, naike"]
}
}
}
}
}
相关文章