1.什么是IK分词器
IK 分词器的作用是在 Elasticsearch 中为中文文本提供高效、精确的分词功能,从而提升搜索和分析的质量和效率。
若不安装,Elasticsearch处理中文时可能会出现报错
1.1在线安装ik分词器
docker exec -it es ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
指令解释
docker exec:
指示 Docker 执行一个命令。
-it es:
-it 标志告诉 Docker 在交互模式下运行命令,并且连接到容器的标准输入(stdin)、输出(stdout)和终端(tty)。
es 是 Elasticsearch 容器的名称。
./bin/elasticsearch-plugin install:
./bin/elasticsearch-plugin 是 Elasticsearch 的插件安装工具的路径。
install 是该工具的子命令,用于安装插件。
**https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip**:
安装ik分词器 的插件,版本号为 7.12.1,一般与es版本对应。
安装完成后重启es
docker restart es
补充:若网络不好,也可以离线安装(自行查找)
安装成功界面
2.使用ik分词器
ik分词器有两种模式,分别是-ik_smart和 ik_max_word
2.1智能语义切分(ik_smart)
这是默认的分词模式,适合一般的搜索引擎应用。它能基本满足中文分词的需求,速度较快,适用于大部分场景。
测试ik_smart
POST /_analyze
{
"analyzer": "ik_smart",
"text": "打游戏真是太爽了"
}
结果如下:
2.1最细粒度切分(ik_max_word)
这是默认的分词模式,适合一般的搜索引擎应用。它能基本满足中文分词的需求,速度较快,适用于大部分场景。
测试ik_max_word
这是更为详细的分词模式,能够在不牺牲太多性能的情况下,更准确地分词。它会尽可能多地分出词语,适用于对分词准确性要求较高的场景。
POST /_analyze
{
"analyzer": "ik_max_word",
"text": "打游戏真是太爽了"
}
结果如下:
可以看出ik_max_word输出了更多分词
3.扩展词典
互联网源源不断地产生大量新词汇,因此我们也需要对词典不断进行补充,一般在线安装需要手动创建config配置项添加扩展词典内容。