上传同义词文件

在通过同义词文件方式使用同义词时,您需要先上传同义词文件。本文介绍上传同义词文件的注意事项和操作步骤。

注意事项

  • 上传同义词前需确保集群处于正常状态,该操作会触发集群滚动重启,在重启过程中后台会进行同义词词典的下发,生效时长与集群规模、数据量及负载情况等有关系,建议在业务低峰期操作。

  • 如果集群索引存在副本分片且集群负载处于正常水平(CPU使用率在60%左右,堆内存使用率在50%左右,load_1m低于CPU核数),一般情况下,在集群变更过程中可持续对外提供服务。

  • 如果集群负载过高且索引没有副本,同时业务中存在大量的写入或查询等场景,在集群变更过程中,业务可能会出现偶发的访问超时现象。建议在客户端访问机制中配置重试机制,以减小对业务的影响。

  • 假设现存索引index-aliyun使用了aliyun.txt同义词文件,当aliyun.txt文件内容变更并重新上传后,现存索引不会动态加载更新后的同义词词典。为避免可能会造成只有新增数据使用新词典的情况,您可以通过以下方式操作:

    • 您可以在同义词词典内容发生变化后进行索引重建操作,期间不会中断服务。

    • 您也可以使用elasticsearch-analysis-dynamic-synonym插件实现词典动态加载,详细信息请参见阿里云ES实现同义词动态更新

    • 您也可以使用reopen现存索引对同义词文件生效,不过要注意下reopen期间服务是完全中断的。具体操作在Kibana开发界面的console控制台输入以下指令:

      ---index_name为索引名称
      POST <index_name>/_close
      POST <index_name>/_open
  • 同义词文件要求每行只有一个同义词表达式(表达式支持Solr规则WordNet规则),保存为UTF-8编码的TXT文件,示例如下。

    西红柿,番茄 =>西红柿,番茄
    社保,公积金 =>社保,公积金
  • 如果停用词中包含同义词文件中指定的词,上传同义词文件或进行其他操作时,主日志中会出现错误信息。

  • 修改同义词名称会导致已引用的索引状态异常,为避免影响业务,不建议修改已使用的同义词文件名称。

操作步骤

  1. 登录阿里云Elasticsearch控制台
  2. 在左侧导航栏,单击Elasticsearch实例
  3. 进入目标实例。
    1. 在顶部菜单栏处,选择资源组和地域。
    2. Elasticsearch实例中单击目标实例ID。
  4. 在左侧导航栏,选择配置与管理>ES集群配置

  5. 基础配置区域,单击同义词配置右侧的上传

  6. 同义词配置面板,单击面板左下方的配置

  7. 选择上传同义词文件的方式。

    说明

    同义词文件是按照同义词配置规则生成的TXT文件。

    • 上传文件:单击上传文件,在本地选择您要上传的同义词文件。

    • 添加OSS文件:输入Bucket名称和同义词文件名称,单击添加

      请确保Bucket与当前Elasticsearch实例在同一地域下,且文件为TXT格式。

  8. 单击保存

说明

如果您需要获取已经上传过的词库文件,可直接单击对应文件的已上传词库文件下载图标图标进行下载。

后续步骤

等待实例的状态变为正常后,登录Kibana控制台创建索引、校验同义词,并上传测试数据进行搜索测试。创建索引时需要配置settingsmapping,并且需要在settings中配置"synonyms_path": "analysis/your_dict_name.txt"。详细信息,请参见使用同义词官方文档Using Synonyms

相关文档

更新同义词词典的API文档:UpdateSynonymsDicts