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"
      }
    }
  }
}
相关推荐
ACP广源盛13924625673几秒前
M6/M5 Pro Mac mini 端侧 AI 爆发@ACP#YLB3118 存储扩展芯片在本地 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
IT研究室9 分钟前
最新大数据毕业设计选题推荐-基于大数据的水质多指标关联分析与可视化的设计与实现-大数据-Spark-Hadoop-Bigdata
大数据·spark·课程设计
故七月13 分钟前
产业观察|从 9 月行业数据看西南市场 GEO 落地现状与发展路径
大数据·人工智能
丶浅行DE时光16 分钟前
管道式电磁流量计选型指南 介质腐蚀与工况适配方案推荐
大数据·网络·人工智能·科技·推荐算法
小白说大模型21 分钟前
Hermes 全配置指南:从裸版到 AI Agent 天花板
大数据·人工智能·学习·算法·机器学习·数据挖掘
涛思数据(TDengine)24 分钟前
从“改了就改了“到“每一次变更都可追溯“:工业 AI 实战直播(十二期)
大数据·数据库·人工智能·时序数据库·tdengine
微三云 - 廖会灵 (私域系统开发)2 小时前
存量社区破局:当物业困局遇上消费返物业费,重构社区商业新生态
大数据·人工智能·重构
小五传输3 小时前
消防总队信创改造实践:国产文件传输服务器解决文件传输难题
大数据·运维·安全
flyinsono4 小时前
连锁宠物医院怎么管?杏聆荟系统实现多店高效协同
大数据·宠物
Sayai4 小时前
Elasticsearch 9 安装验证实战:start-local 一键部署 + Docker 手动安装踩坑指南
大数据·elasticsearch·docker