You need to enable JavaScript to run this app.
导航
使用同义词插件动态加载词库
最近更新时间:2024.07.03 19:47:44首次发布时间:2023.07.21 11:36:53

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

前提条件

创建索引指定同义词插件

  1. 您可通过以下方式访问可视化工具:

    • 实例列表页面,单击目标实例操作列的 KibanaDashboards
    • 基本信息页面的可视化控制区域,单击工具的公网入口
  2. 在访问页面输入用户名和密码,单击 Log in,登录可视化工具。
    用户名为 admin,密码为创建实例时设置的密码。如果您忘记了登录密码,您可以重置密码。

  3. 在左侧导航栏选择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":"云搜索服务"
    }
    

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

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

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

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

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

热更新同义词文件

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

  1. 在实例详情导航栏选择搜索管理 > 同义词管理,然后单击文件管理页签。

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

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

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

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

  6. 检验同义词。

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

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

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

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

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