随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

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
    }
  ]
}
复制代码

 

posted on   Ruthless  阅读(368)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
历史上的今天:
2018-08-05 我所理解的技术领导力
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示