ElasticSearch 7.3 实战:中文分词器(IK Analyzer)及自定义词库

在Elasticsearch 7.3中使用IK Analyzer作为中文分词器并自定义词库的过程包括以下几个步骤:

安装IK Analyzer插件

首先,你需要在Elasticsearch集群中安装IK Analyzer插件。可以通过以下命令安装(假设你已经在Elasticsearch的bin目录下):

# 对于 Elasticsearch 7.x 版本
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.0/elasticsearch-analysis-ik-7.3.0.zip

配置IK Analyzer

  1. 配置自定义词库

    • 找到IK Analyzer插件的配置目录,通常位于plugins/ik/config路径下。
    • 在该目录下有一个IKAnalyzer.cfg.xml文件,编辑此文件以指定自定义词典的位置。例如,如果你在custom目录下创建了一个名为my_dict.dic的词典文件,则需要在配置文件中添加如下内容:
    <wordDictionary>plugins/ik/config/custom/my_dict.dic</wordDictionary>
    
  2. 添加自定义词库

    • 在上述提到的custom目录下创建或放置自定义词典文件,每行一个词语。
  3. 重启Elasticsearch

    • 完成词典配置后,需要重启Elasticsearch使新词典生效。在Linux系统中可以使用kill命令结束Elasticsearch进程并重新启动;在Windows系统中,可以通过关闭命令行窗口并重新运行.bat启动脚本来完成重启。

测试分词效果

你可以使用Elasticsearch的_analyze API来测试IK Analyzer是否成功加载自定义词库并正确分词:

GET /_analyze
{
  "analyzer": "ik_max_word", // 或 ik_smart
  "text": "这里是我自定义的词汇"
}

应用自定义分词器至索引

如果想在特定索引中使用IK Analyzer作为默认或特定字段的分词器,你需要在索引映射中指定:

PUT my_index
{
  "settings": {
    "index": {
      "analysis": {
        "analyzer": {
          "my_ik_analyzer": { 
            "type": "ik_max_word",
            "stopwords": "_chinese_", // 可选,使用停用词表
            "use_smart": true/false // 根据需求启用或禁用智能分词模式
          }
        }
      }
    }
  },
  "mappings": {
    "_doc": {
      "properties": {
        "content": {
          "type": "text",
          "analyzer": "my_ik_analyzer" // 在“content”字段上应用自定义IK分词器
        }
      }
    }
  }
}

这样,当索引文档中的content字段时,IK Analyzer会使用自定义词库进行分词。并且,新扩充的词典仅对扩展后新增加的索引数据有效,对于历史索引数据则需要重新索引才能应用新词典的分词效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值