Elasticsearch安装ik分词

本文介绍如何在Elasticsearch中安装和配置IK分词器以提高中文分词效果。包括下载适配版本的插件、定义索引映射、使用_analyze API检查分词效果等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

elasticsearch是自带中文分词的, 但是基本上是每个单字的分, 效果不好。

medcl大神的ik分词, 是专门的中文分词。更多信息,可参考 https://github.com/medcl/elasticsearch-analysis-ik

1. 安装ik插件

可以从 https://github.com/medcl/elasticsearch-analysis-ik/releases 下载适合的匹配ES版本的包,

下载之后, 放到plugin目录下, 解压即可使用了。

2. 创建index的时候, 给出mapping, 在mapping中, 指定字段所使用的analyzer为ik

e.g. curl -XPOST http://localhost:9200/index/fulltext/_mapping -d'
{
    "fulltext": {
             "_all": {
            "analyzer": "ik_max_word",
            "search_analyzer": "ik_max_word",
            "term_vector": "no",
            "store": "false"
        },
        "properties": {
            "content": {
                "type": "string",
                "store": "no",
                "term_vector": "with_positions_offsets",
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_max_word",
                "include_in_all": "true",
                "boost": 8
            }
        }
    }
}'

具体的case可参考https://github.com/medcl/elasticsearch-analysis-ik

3. 对于分词的效果, 可使用 _analyze 来查看

e.g. GET localhost:9200/_analyze -d '
 {
  "analyzer":"ik_max_word",
  "text" : "助手P5 5.14.9003"
}’

4. 对于同一个字段, 使用不同分词器的情况, 可参考http://keenwon.com/1404.html 给出的例子, 对一个field建立多个子field, 对该field及多个子fields使用不同的analyzer。

e.g.  下面黄色标出的部分, 即是title这个field的子fileds : cn 和 en

对title本身使用的是标准分词器, 对title.cn使用的是ik分词器,对title.cn使用的是自带的英文分词器。

PUT http://192.168.159.159:9200/index1
{
  "settings": {
     "refresh_interval": "5s",
     "number_of_shards" :   1, // 一个主节点
     "number_of_replicas" : 0 // 0个副本,后面可以加
  },
  "mappings": {
    "_default_":{
      "_all": { "enabled":  false } // 关闭_all字段,因为我们只搜索title字段
    },
    "resource": {
      "dynamic": false, // 关闭“动态修改索引”
      "properties": {
        "title": {
          "type": "string",
          "index": "analyzed",
          "fields": {
            "cn": {
              "type": "string",
              "analyzer": "ik"
            },
            "en": {
              "type": "string",
              "analyzer": "english"
            }
          }
        }
      }
    }
  }
}
在搜索的时候, 同时匹配该字段及其子字段就可以了。

POST http://192.168.159.159:9200/index1/resource/_search

{
  "query": {
    "multi_match": {
      "type":     "most_fields", 
      "query":    "最新",
      "fields": [ "title", "title.cn", "title.en" ]
    }
  }
}

### 在 Windows 上为 Elasticsearch 安装 IK 分词器 #### 下载并安装 Elasticsearch 和 Kibana 为了确保一切正常工作,在开始安装IK分词插件之前,先完成Elasticsearch和Kibana的安装。访问官方网站 Download Elasticsearch | Elastic 并下载适用于Windows系统的最新版本的Elasticsearch和Kibana[^2]。 #### 启动 Elasticsearch 和 Kibana 解压下载好的文件到指定位置,并启动这两个服务。通常情况下,可以通过命令提示符或PowerShell来执行相应的批处理脚本来启动它们: ```batch cd path\to\elasticsearch-8.x.x\ .\bin\elasticsearch.bat ``` 对于Kibana: ```batch cd path\to\kibana-8.x.x\ .\bin\kibana.bat ``` 确认两个服务均已成功运行之后再继续下一步操作。 #### 创建 `ik` 插件目录 前往已解压缩后的Elasticsearch根目录下的 `/plugins/` 文件夹内新建名为 `ik` 的子文件夹[^3]: ```batch mkdir "path\to\elasticsearch-8.x.x\plugins\ik" ``` #### 使用官方推荐的方式安装IK分词插件 实际上更简便的方法是利用Elasticsearch自带的插件管理工具 `_ingest/_plugin` 或者直接通过命令行使用 `elasticsearch-plugin install` 命令来进行安装。这种方式可以自动处理依赖关系并且更加稳定可靠。具体来说就是打开命令提示符窗口,切换至Elasticsearch所在的路径下输入如下指令: ```batch cd path\to\elasticsearch-8.x.x\ .\bin\elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.2/elasticsearch-analysis-ik-7.10.2.zip ``` 请注意替换URL中的版本号以匹配所使用的Elasticsearch版本。 #### 配置 (可选) 某些资料提到需要编辑 `elasticsearch.yml` 来启用IK析器,但实际上这一步骤并非总是必要的,因为默认设置已经足够支持大部场景下的中文分词需求[^4]。如果确实有特殊定制化的需求,则可以根据实际情况调整配置项。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值