快捷搜索: 王者荣耀 脱发

Elasticsearch安装与使用IK中文分词器

1、简介

IKAnalyzer 是一个开源的,基于 Java 语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer 已经推出了3个大版本。最初,它是以开源项目 Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。 最近刚刚发布了 3.1.1Stable 稳定版本,新版本的 IKAnalyzer 则发展为面向 Java 的公用分词组件,独立于 Lucene 项目,同时提供了对 Lucene 的默认优化实现。

2、安装IK中文分词器

下载IK中文分词器:

注意:选择的IK分词器版本一定要与你的 Elasticsearch 版本一致,否则就无法启动 Elasticsearch 服务。

例如,本人的 Elasticsearch 版本为:7.11.1,所有下载的IK分词器版本也为:7.11.1。

(1)下载完成后,解压zip文件。

(2)然后进入 Elasticsearch 目录下的 plugins 目录,在 plugins 目录下创建一个名为:ik 的文件夹。

(3)将解压后的文件全拷贝到到该:elasticsearch-7.11.1pluginsik 文件夹下,如下图:

(4)重启 Elasticsearch 服务。

3、IK中文分词器的使用

根据官方的建议,IK分词器的名字可以使用: ik_max_word 或者 ik_smart。

ik_max_word:会将文本做最细粒度的拆分,比如会将“朝暮轮回,四季更替”拆分为 “朝暮、轮回、四季、更替、四、季”。

ik_smart:会做最粗粒度的拆分,比如会将“朝暮轮回,四季更替”拆分为 “朝暮、轮回、四季、更替”。

3.1 查看分词结果

POST /_analyze
{
  "analyzer":"ik_max_word",
  "text":"您好,欢迎访问 pan_junbiao的博客"
}

执行结果:

3.2 创建索引

PUT /user_info
{
  "settings": {
    "index": {
      "number_of_shards": "2",
      "number_of_replicas": "0"
    }
  },
  "mappings": {
    "properties": {
      "id": {
        "type": "integer"
      },
      "user_name": {
        "type": "text"
      },
      "blog_remark": {
        "type": "text",
        "analyzer": "ik_max_word"
      }
    }
  }
}

执行结果:

3.3 批量添加数据

POST _bulk
{ "create" : { "_index" : "user_info", "_id" : "1001" } }
{ "id":1, "user_name": "pan_junbiao的博客","blog_remark": "您好,欢迎访问 pan_junbiao的博客"}
{ "create" : { "_index" : "user_info", "_id" : "1002" } }
{ "id":2,"user_name": "pan_junbiao的博客","blog_remark": "您好,欢迎访问 pan_junbiao的博客"}
{ "create" : { "_index" : "user_info", "_id" : "1003" } }
{ "id":3,"user_name": "pan_junbiao的博客","blog_remark": "https://blog..net/pan_junbiao"}

执行结果:

3.4 查询数据

POST /user_info/_search
{
  "query": {
    "match": {
      "blog_remark": "博客"
    }
  }
}

执行结果:

经验分享 程序员 微信小程序 职场和发展