当前位置: 首页 > 工具软件 > es-ik > 使用案例 >

es系列: IK分词器的安装

闻人仲渊
2023-12-01

IK中文分词器的安装

ES默认是没有IK中文分词器的,我们要将IK中文分词器作为一个插件安装到ES中,安装的步骤也很简单

1.   从GitHub上下载适合自己ES版本的IK中文分词器,地址如下:https://github.com/medcl/elasticsearch-analysis-ik/releases。
2.   在我们的ES的插件目录中(${ES_HOME}/plugins)创建ik目录, 将我们下载好的IK分词器解压到ik目录。
3.   重启我们所有的ES服务。 到这里,我们的IK中文分词器就安装完了。


IK中文分词器插件给我们提供了两个分析器
ik_max_word : 会将文本做最细粒度的拆分
ik_smart:会做最粗粒度的拆分


我们指定分词器为ik_max_word ,文本内容为中华人民共和国国歌:
 

POST _analyze
{
  "analyzer": "ik_max_word",
  "text":     "中华人民共和国国歌"
}

我们可以看到,分词分的非常细,我们在使用上面的这些进行搜索时,都可以搜索到中华人民共和国国歌这个文本

我们再看一下另外一个分析器: ik_smart

POST _analyze
{
  "analyzer": "ik_smart",
  "text":     "中华人民共和国国歌"
}

同样的文本,使用ik_smart进行分词时,只分成了两个词,和ik_max_word分词器比少了很多。这就是两个分词器的区别,不过这两个分析器都是可以对中文进行分词的。

创建索引时指定IK分词器 

既然我们安装了IK中文分词器的插件,那么我们在创建索引时就可以为text类型的字段指定IK中文分词器了

我们创建了索引ik_index,并且为字段title指定了分词器ik_max_word

PUT ik_index
{
	"mappings": {
		"properties": {
			"id": {
				"type": "long"
			},
			"title": {
				"type": "text",
				"analyzer": "ik_max_word"
			}
		}
	}
}

为索引指定默认IK分词器

PUT ik_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "default": {
          "type": "ik_max_word"
        }
      }
    }
  }
}

 类似资料: