Elasticsearch同义词配置全攻略

配置方式

自定义检索分析器

  1. 在索引settings中自定义带同义词功能 的分析器,其中,filter中synonyms_setsynonymssynonyms_path根据同义词集配置方式不同,三选一
  2. 在mappings中使用自定义的分析器
  • 完整的settings配置
json 复制代码
{
  "settings": {
    "index": {
      "analysis": {
        "filter": {
          "synonym_filter": {
            "ignore_case": "true",
            "updateable": "true",
            "type": "synonym_graph",
            "synonyms_set": "xxxx",
            "synonyms": "xxxx",
            "synonyms_path":"xxxx"
          }
        },
        "analyzer": {
          "index_analyzer": {
            "filter": [
              "lowercase"
            ],
            "type": "custom",
            "tokenizer": "ik_max_word"
          },
          "search_analyzer": {
            "filter": [
              "synonym_filter",
              "lowercase"
            ],
            "type": "custom",
            "tokenizer": "ik_max_word"
          }
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "content": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword"
          }
        },
        "analyzer": "index_analyzer",
        "search_analyzer": "search_analyzer"
      }
    }
  }
}

三种设置同义词方式

  • 首先定义一个同义词分析器,支持三种设置同义词的方式:内联同义词列表、引用外部同义词文件和同义词API(Elasticsearch7.x 以上新增API)
配置方式 核心描述 适用场景与注意事项
1. 内联同义词列表 在创建索引或分析器的设置时,直接在 synonyms 参数中以数组形式列出同义词规则。 快速验证和少量同义词 。规则变更需要关闭索引并重建,不适合大规模或频繁更新。
2. 引用外部同义词文件 通过 synonyms_path 参数指向一个存放在每个ES节点本地磁盘上的文本文件。 同义词规则较多 时更便于管理。文件更新后,可通过 _reload_search_analyzers API 重载,无需重启索引
3. 同义词 API (官方推荐方式) 使用专用的 _synonyms API 创建和管理一个独立的同义词集 ,在分析器中通过 synonyms_set 引用。 Elasticsearch 8.x 的现代化方式 。提供集中的、可动态更新的同义词管理,无需接触节点本地文件,尤其适用于云环境或容器化部署
内联同义词列表
json 复制代码
{
  "analysis": {
    "filter": {
      "synonym_filter": {
        "ignore_case": "true",
        "type": "synonym",
        "updateable": "true",
        "synonyms": [
          "手机,移动电话,IPhone",
          "耳机,蓝牙耳机,耳麦"
        ]
      }
    }
  }
}
引用外部同义词文件
  • 支持2中引入方式,即本地文件和远程API文件(需要安装插件)
  • 本地文件修改后,不可直接生效,需要重新加载索引
本地文件
json 复制代码
{
  "analysis": {
    "filter": {
      "synonym_filter": {
        "ignore_case": "true",
        "type": "synonym",
        "updateable": "true",
        "synonyms_path": "/usr/share/elasticsearch/data/synonym/custom_synonym_set.txt"
      }
    }
  }
}
重新加载索引
  1. 关闭索引:GET <index_name>/_close
  2. 打开索引:GET <index_name>/_open
远程文件
  • 需要安装插件,安装方式
shell 复制代码
bin/elasticsearch-plugin install https://github.com/jprante/elasticsearch-analysis-url/releases/download/7.10.2/analysis-url-7.10.2-plugin.zip
同义词API
同义词集管理
添加同义词集
  • API
  • 请求方式:PUT
  • URI: _synonyms/自定义数据集名称,例如:自定义数据集名称为:custom_synonyms_set
  • 请求参数:
json 复制代码
{
    "synonyms_set": [
        {
            "id": "1",
            "synonyms": "手机,移动电话,IPhone"
        },
        {
            "id": "2",
            "synonyms": "耳机,蓝牙耳机,耳麦"
        }
    ]
}
查询同义词集
  • API
  • 请求方式:GET
  • URI: _synonyms/自定义数据集名称,例如:自定义数据集名称为:custom_synonyms_set
  • 更新方式为全量更新,不能增量更新。更新后,可立即生效
删除同义词集
  • API
  • 请求方式:DELETE
  • URI: _synonyms/自定义数据集名称,例如:自定义数据集名称为:custom_synonyms_set
  • 如果同义词集有被其他索引引用,则会删除失败。所以无需担心误删情况
使用自定义的同义词集
  • custom_synonyms_set为自定义的同义词集
json 复制代码
{
  "analysis": {
    "filter": {
      "synonym_filter": {
        "ignore_case": "true",
        "type": "synonym",
        "updateable": "true",
        "synonyms_set": "custom_synonyms_set"
      }
    }
  }
}
相关推荐
中烟创新22 分钟前
技术深耕,全域赋能:中烟创新产品矩阵与OpenClaw实现深度融合
大数据·人工智能
QYR_Jodie24 分钟前
稳健增速托举刚需扩容:全球X射线荧光光谱仪(XRF)2026-2032年CAGR4.8%,2032年剑指11.73亿美元
大数据·人工智能·市场报告
昨夜见军贴061629 分钟前
IACheck AI报告文档审核助力新能源汽车:降低电磁兼容(EMC)检测报告风险,确保合规性与准确性
大数据·人工智能·汽车
zml.~31 分钟前
Spark大数据分析:解锁海量数据价值的核心利器
大数据·数据分析·spark
岁岁种桃花儿32 分钟前
Flink从入门到上天系列第十四篇:Flink当中的处理函数
大数据·flink
我爱学习好爱好爱39 分钟前
Elasticsearch 7.17.10 双节点集群部署实战(基于 Rocky Linux 9.6)
大数据·linux·elasticsearch
AC赳赳老秦1 小时前
2026 AI原生工具链升级:DeepSeek与AI原生IDE深度联动,重塑开发效率新高度
大数据·ide·人工智能·web3·去中心化·ai-native·deepseek
ascarl20101 小时前
canal和ES同步失败维护步骤
java·数据库·elasticsearch
TYFHVB121 小时前
2026六大主流CRM横评,五大核心维度深度解析
大数据·前端·数据结构·人工智能
武子康1 小时前
大数据-245 离线数仓 - 电商分析 Hive 拉链表入门实战:缓慢变化维 SCD 类型、建表加载与常见错误速查
大数据·后端·apache hive