You need to enable JavaScript to run this app.
导航

使用同义词插件动态加载词库

最近更新时间2023.11.10 10:33:49

首次发布时间2023.07.21 11:36:53

执行热启用同义词文件,现存索引不会动态加载更新后的同义词词典。您可以使用系统默认插件(analysis-dynamic-synonym)实现同义词词典动态加载。本文介绍如何使用同义词插件,并体验同义词功能。

前提条件

  • 本文选择登录 Kinbana 可视化控制台进行索引相关操作,请先启用公网访问能力。具体操作,请参见开启 Kibana 公网访问
  • 准备一个同义词文件(doc-synonym.txt),内容为云搜索服务,Elasticsearch。您需要提前上传并启用。相关文档,请参见上传同义词文件
  • 同义词词典文件里的内容请提前添加到 IK 主分词词典文件中,并启用分词词典文件。操作步骤,请参见上传 IK 分词词典文件

创建索引指定同义词插件

  1. 您可通过以下方式访问 Kibana 登录页面:

    • 实例列表页面,单击目标实例操作列的 Kibana
    • 实例信息页签的服务访问区域,复制 Kibana公网访问地址至浏览器中打开。
  2. 在 Kibana 访问页面输入用户名和密码,单击 Log in,登录 Kibana。
    用户名为 admin,密码为创建实例时设置的密码。如果您忘记了登录密码,您可在实例详情页面重置密码。
    图片

  3. 在 Kibana 左侧导航栏选择Management > Dev Tools,然后在代码区域执行以下命令,创建索引并指定同义词插件。

    说明

    以下命令原理为:创建一个名为doctest-6的索引,并进行以下操作。

    • 设置一个名为by_ik_smart的解释器,使用ik_smart分词,并指定同义词插件default_dynamic_synonym
    • mappings 中设定索引中字段,并指定所使用的解释器。
    • 以下命令适用于 7.10.2 版本的实例中。如果您的实例版本是 6.7.1 版本,请注意调整。
    PUT /doctest-6
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "by_ik_smart": {
              "tokenizer": "ik_smart",
              "filter": [
                "default_dynamic_synonym" 
              ]
            }
          }
        }
      },
       "mappings": {
            "properties": {
                "name": {
                    "type": "text",
                    "analyzer":  "by_ik_smart"
                }
            }
        }
    }
    

    图片

  4. 检验同义词。

    GET /doctest-6/_analyze
    {
    "analyzer": "by_ik_smart",
    "text":"云搜索服务"
    }
    

    从返回结果中,可以清楚地看到云搜索服务,Elasticsearch属于同义词。
    图片

  5. 在代码执区域执行以下命令,往索引中写入文档数据。

    POST /doctest-6/_doc/1
    {"name":"云搜索服务"}
    
  6. 在代码区域执行以下命令,查询文档。

    GET /doctest-6/_search?explain
    {
      "query": {
        "match": {"name": "Elasticsearch"}
      }
    }
    

    图片
    可以清楚地看到:查询Elasticsearch,返回云搜索服务,表示同义词文件已生效。

热启用同义词文件

您可以修改同义词内容为云搜索服务,Elasticsearch,ES,即增加ES,然后热更新同义词词库,继续体验同义词文件热启用能力。

  1. 在实例的同义词文件列表,选择需要更新的同义词文件,然后单击热启用
    图片

  2. 上传热启用文件对话框,上传已更新的同名文件,然后单击关闭

  3. 在 Kibana 左侧导航栏选择Management > Dev Tools

  4. 新建一个索引,并写入文档数据。

  5. 检验同义词。

    GET /doctest-8/_analyze
    {
    "analyzer": "by_ik_smart",
    "text":"云搜索服务"
    }
    

    从返回结果中,可以清楚地看到云搜索服务,Elasticsearch,ES属于同义词。
    图片

  6. 在代码执区域执行以下命令,查询文档数据。

    GET /doctest-8/_search?explain
    {
      "query": {
        "match": {"name": "ES"}
      }
    }
    

    查询ES,返回云搜索服务,表示已经动态加载同义词文件。
    图片