上云无忧 > 文档中心 > 百度智能云Elasticsearch - 配置同义词
Elasticsearch
百度智能云Elasticsearch - 配置同义词

文档简介:
百度智能云Elasticsearch支持上传自定义的同义词文件。此外,百度智能云Elasticsearch也支持动态同义词文件更新,见动态同义词。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

百度智能云Elasticsearch支持上传自定义的同义词文件。此外,百度智能云Elasticsearch也支持动态同义词文件更新,见动态同义词。

上传方式

  1. 登录百度智能云Elasticsearch控制台,并点击集群名称,进入集群详情界面。
  2. 在左侧导航栏,单击配置修改

  1. 点击“选择文件”,在弹出的页面选择需要上传的同义词文件,并“确认上传”。
  2. 在词典列表里可以看见相应文件,即完成同义词词典上传。

注意事项

  • 同义词文件需要为utf-8编码,扩展名为txt。
  • 要求每行一个同义词表达式(表达式支持 Solr 规则 和 WordNet 规则),例如:

    肯德基,KFC => 肯德基
    elasticsearch,ES
  • 新上传/新变更的同义词文件对旧索引不生效,只对新建索引生效。
  • 若旧索引需要使用新上传的同义词文件,需要重建索引(reindex);已经被使用的同义词文件如果发生变更,需reopen索引(先将索引close,随后open索引),重新载入新的同义词配置。(但旧数据依旧没有使用新的同义词配置,需要reindex)
  • 同义词文件单个文件最大为10M,上传文件总数最多为10个。

使用方式

上传同义词文件后,用户可以创建索引,验证同义词配置,并可以写入测试数据进行搜索测试。创建索引时需要配置settingsmapping,并且需要在settings中配置"synonyms_path": "analysis/{your_dict_name}.txt"。

具体使用方式如下:

上传文件

在百度智能云Elasticsearch控制台,上传文件test_synonym.txt,文件内容为:

肯德基,KFC => 肯德基

创建索引

PUT /test
{
  "settings": {
    "index": {
      "analysis": {
        "analyzer": {
          "my_analyzer": {
            "type": "custom",
            "tokenizer": "ik_smart",
            "filter": ["my_synonym"]
          }
        },
        "filter": {
          "my_synonym": {
            "type": "synonym",
            "synonyms_path": "analysis/test_synonym.txt"
          }
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "my_analyzer",
        "search_analyzer": "my_analyzer"
      }
    }
  }
}

验证同义词配置

GET test/_analyze
{
  "analyzer": "my_analyzer",
  "text": "KFC"
}

结果为:

{
   "tokens": [
      {
         "token": "肯德基",
         "start_offset": 0,
         "end_offset": 3,
         "type": "SYNONYM",
         "position": 0
      }
   ]
}

写入数据测试

写入数据如下:

POST test/_doc/1
{
    "title":"我喜欢吃肯德基"
}

查询语句如下:

GET /test/_doc/_search
{
    "query":{
      "match": {
        "title": "KFC"
      } 
    }
}

查询结果为:

{
   "took": 20,
   "timed_out": false,
   "_shards": {
      "total": 1,
      "successful": 1,
      "skipped": 0,
      "failed": 0
   },
   "hits": {
      "total": {
         "value": 1,
         "relation": "eq"
      },
      "max_score": 0.2876821,
      "hits": [
         {
            "_index": "test",
            "_type": "_doc",
            "_id": "1",
            "_score": 0.2876821,
            "_source": {
               "title": "我喜欢吃肯德基"
            }
         }
      ]
   }
}

详细信息见Elasticsearch官方配置同义词文档。

相似文档
  • 百度智能云Elasticsearch支持开源Elasticsearch的所有插件,在此基础上又自研了部分插件,为您提供丰富的插件功能。本文介绍百度智能云Elasticsearch目前支持的插件。
  • IK中文分词插件(英文名为analysis-ik)是百度智能云Elasticsearch默认安装的中文分词插件。 本文介绍了IK 中文分词插件的使用方法和动态更新IK词典的方法。
  • analysis-pinyin拼音分词插件是百度智能云Elasticsearch默认安装的分词插件。 使用方法: 创建索引并使用自定义拼音分析器:
  • 简介: Elasticsearch的ingest attachment插件可以将常用格式的文件作为附件写入Index。ingest attachment插件通过使用Apache Tika来提取文件,支持的文件格式有TXT、DOC、PPT、XLS和PDF等。 注意:源字段必须是base64编码的二进制。
  • 背景: 词干提取是通过简化他们的词根形式来扩大搜索的范围,同义词通过相关的观念和概念来扩大搜索范围。 也许没有文档匹配查询 “英国女王“ ,但是包含 “英国君主” 的文档可能会被认为是很好的匹配。用户搜索 “美国” 并且期望找到包含 美利坚合众国 、 美国 、 美洲 、或者 USA 的文档。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部