上云无忧 > 文档中心 > 百度智能云Elasticsearch - 动态同义词插件
Elasticsearch
百度智能云Elasticsearch - 动态同义词插件

文档简介:
背景: 词干提取是通过简化他们的词根形式来扩大搜索的范围,同义词通过相关的观念和概念来扩大搜索范围。 也许没有文档匹配查询 “英国女王“ ,但是包含 “英国君主” 的文档可能会被认为是很好的匹配。用户搜索 “美国” 并且期望找到包含 美利坚合众国 、 美国 、 美洲 、或者 USA 的文档。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

背景

词干提取是通过简化他们的词根形式来扩大搜索的范围,同义词通过相关的观念和概念来扩大搜索范围。 也许没有文档匹配查询 “英国女王“ ,但是包含 “英国君主” 的文档可能会被认为是很好的匹配。用户搜索 “美国” 并且期望找到包含 美利坚合众国 、 美国 、 美洲 、或者 USA 的文档。

百度智能云Elasticsearch提供的动态同义词插件可以满足上述需求,同义词词典主要包括一个可选的内置的汉语同义词词典和用户提供的远端可更新的同义词词库,用户需要在创建索引的时候对需要进行同义展开的字段进行设定。

使用方式

创建索引并自定义分词器

PUT synonym_test
{
   "settings": {
      "index": {
         "number_of_replicas": 0,
         "number_of_shards": 1,
         "analysis": {
            "analyzer": {
               "sy": {
                  "type": "custom",
                  "tokenizer": "bd-nlp-phrase",
                  "filter": [
                     "remote_synonym",
                     "lowercase"
                  ]
               }
            },
            "filter": {
               "remote_synonym": {
                  "type": "bd_synonym",
                  "expand": true,
                  "synonyms_path": "http://{ip}:{port}/synonym.txt",
                  "reload_interval": 30
               }
            }
         }
      }
   }
}

参数说明:

参数 说明
type 固定为bd_synonym
expand 对同义词词进行取代替换或展开, 默认为true即展开
synonyms_path 远程词典的地址, 需要用户配置并且保证ES集群可以访问(可以上传到BOS获取BOS访问链接,详见下文)
reload_interval 检测远程词典变化的时间间隔, 默认为30s
need_tokenize 是否对同义词词典中的单个词进行分词, 默认为false并采用keyword tokenizer
local 是否启用内置的本地同义词库,默认为true,我们提供了一个基础的中文同义词词典但并不保证效果
format 支持solr和wordnet类型的同义词词典,建议设置值采用默认值solr, 设定其他值按solr处理
analysis_mode 同义语义作用的分析阶段,all、index、search, 默认为all
lenient 同义词词典中如果有行解析错误是否跳过, 默认为true

上传词典到BOS

用户可以把词典文件上传到BOS,并获取链接地址。需要注意的是,务必保证Elasticsearch所在地区与BOS Bucket的地区相同,否则无法访问词典。

1.建议将词典文件的访问权限设置为公共读,确保文件永久有效,且链接地址不会发生变化。

2.若不设置为公共读,则需要按业务需求修改BOS链接的有效时间,如需永久有效,可将有效时间设为-1。注意,链接有效期过后或词典文件如果发生修改(删除后重新上传),链接地址会发生变化,此时需要重新在Elasticsearch中配置链接地址。

词典说明

同义词最简单的表达形式是用逗号分隔:

"jump,leap,hop"

如果遇到这些词项中的任何一项,则将其替换为所有列出的同义词

原始词项  →   取代
────────────────────────────────
jump            → (jump,leap,hop)
leap            → (jump,leap,hop)
hop             → (jump,leap,hop)

或者, 使用 => 语法,可以指定一个词项列表(在左边),和一个或多个替换(右边)的列表:

"usa,united states,united states of america => usa"
"gb,gb,great britain => britain,england,scotland,wales"
原始词项  →   取代
────────────────────────────────
u s a           → (usa)
united states   → (usa)
great britain   → (britain,england,scotland,wales)

如果多个规则指定同一个同义词,它们将被合并在一起,且顺序无关,否则使用最长匹配

一个简单的中文同义词词典样例:

肯德基,KFC,开封菜
America, Unitied States, 美国, 美利坚合众国
中国,china,中华人民共和国
elasticsearch,ES
公有云,云计算
AI,人工智能,智能
机器人,robot,机械机构

说明:

  • 每行是一个同义词组
  • 用英文逗号进行分割

_analyze API测试

POST test/_analyze
{
    "text": "KFC",
    "analyzer": "sy"
}

分词结果:

{
   "tokens": [
      {
         "token": "kfc",
         "start_offset": 0,
         "end_offset": 3,
         "type": "WORD",
         "position": 0
      },
      {
         "token": "金拱门",
         "start_offset": 0,
         "end_offset": 3,
         "type": "SYNONYM",
         "position": 0
      },
      {
         "token": "开封菜",
         "start_offset": 0,
         "end_offset": 3,
         "type": "SYNONYM",
         "position": 0
      }
   ]
}

注意

创建索引时会以同步的方式请求远端词典,所以创建索引的时间可能会比较长。

相似文档
  • 插件介绍: 简繁体转换插件可以帮助用户完成简体中文与繁体中文的转换。用户可以通过该插件的转换功能,使用中文繁体关键字搜索出包含对应中文简体的索引数据,同样也可以使用中文简体关键字搜索出包含对应中文繁体的索引数据。
  • 当用户需要使用自研插件或百度智能云Elasticsearch默认插件中不包含的开源插件时,可通过百度智能云Elasticsearch的自定义插件上传与安装功能,安装并使用插件。本文介绍具体的操作方法。
  • 百度智能云Elasticsearch 提供监控指标、报警和实例组功能。 监控指标:为运行中的集群提供多项监控指标,用户可根据监控指标,实时了解集群的运行状况,及时处理潜在风险,保障集群稳定运行。
  • 用户在接入百度智能云Elasticsearch服务时,如需要百度智能云Elasticsearch服务间进行数据迁移或自建Elasticsearch服务数据迁移至百度智能云 Elasticsearch,可以根据自己的业务需求选择合适的迁移方案。本文介绍各迁移方案适用的场景,帮助您根据业务选择合适的场景进行迁移。
  • 介绍: 多用户访问控制,主要用于帮助用户管理云账户下资源的访问权限,适用于企业内的不同角色,可以对不同的工作人员赋予使用产品的不同权限,当您的企业存在多用户协同操作资源时,推荐您使用多用户访问控制。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部