elasticsearch同义词
1、同义词词库
准备一个同义词文件,每行一个同义词词组,例子sku_synonym.txt:
西红柿,番茄,tomato =>西红柿,番茄
马铃薯,土豆 =>马铃薯,土豆
社保,公积金 =>社保,公积金
注意:编码 UTF-8 (很关键!!!我就是被坑在这里)
2、上传同义词文件
上传同义词文件,点击此文档
创建索引时需要配置settings和mapping,并且需要在settings中配置"synonyms_path": "analysis/your_dict_name.txt"。
词库位置:analysis/sku_synonym.txt
3、配置分析器
delete sku_syno
PUT sku_syno
{
"settings": {
"analysis": {
"filter": {
"my_synonym_filter": {
"type": "synonym",
"synonyms_path" : "analysis/sku_synonym.txt"
}
},
"analyzer": {
"my_synonyms": {
"tokenizer": "ik_smart",
"filter": [
"lowercase",
"my_synonym_filter"
]
}
}
}
}
}
4、分词效果测试
GET /sku_syno/_analyze
{
"text":"我爱吃土豆社保番茄",
"analyzer": "my_synonyms"
}
演示效果:
{
"tokens" : [
{
"token" : "我",
"start_offset" : 0,
"end_offset" : 1,
"type" : "CN_CHAR",
"position" : 0
},
{
"token" : "爱吃",
"start_offset" : 1,
"end_offset" : 3,
"type" : "CN_WORD",
"position" : 1
},
{
"token" : "马铃薯",
"start_offset" : 3,
"end_offset" : 5,
"type" : "SYNONYM",
"position" : 2
},
{
"token" : "土豆",
"start_offset" : 3,
"end_offset" : 5,
"type" : "SYNONYM",
"position" : 2
},
{
"token" : "社保",
"start_offset" : 5,
"end_offset" : 7,
"type" : "SYNONYM",
"position" : 3
},
{
"token" : "公积金",
"start_offset" : 5,
"end_offset" : 7,
"type" : "SYNONYM",
"position" : 3
},
{
"token" : "西红柿",
"start_offset" : 7,
"end_offset" : 9,
"type" : "SYNONYM",
"position" : 4
},
{
"token" : "番茄",
"start_offset" : 7,
"end_offset" : 9,
"type" : "SYNONYM",
"position" : 4
}
]
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
2018-08-05 我所理解的技术领导力